|
21-01-2011, 12:30
|
|
|
חבר מתאריך: 22.10.06
הודעות: 169
|
|
תודה ישראל!
אך הדבר לא עזר לי..
חפשתי שוב באתר php.net את פונקציית xml כדי לבדוק אם מישהו כתב דוגמא
שאולי תוכל לעזור לי ומצאתי!
מסתבר שאכן כיון שהקובץ לא היה בנוי טוב לא הייתי מקבל את כל התוצאות.
ועכשיו על ידי הקוד שמצאתי אני מקבל את כל התכולת הקובץ כמו שצריך.
תגיות הhtml הן היו הבעיה ועכשיו כל שנותר לי הוא לתאם את הקוד שלי כך
שתגיות הhtml יוחלפו למה שהן אמורות להיות: <>
תודה רבה על הרצון לעזור!
אני מעריך את זה מאוד!!
ולמי שרוצה לדעת את הקוד שמצאתי
http://il2.php.net/manual/en/example.xml-external-entity.php
Example #1 External Entity Example
קוד PHP:
$file = "xmltest.xml"; function trustedFile($file) { // only trust local files owned by ourselves if (!preg_match("@^([a-z]+)\:\/\/@i", $file) && fileowner($file) == getmyuid()) { return true; } return false; } function startElement($parser, $name, $attribs) { echo "<<font color=\"#0000cc\">$name</font>"; if (count($attribs)) { foreach ($attribs as $k => $v) { echo " <font color=\"#009900\">$k</font>=\"<font color=\"#990000\">$v</font>\""; } } echo ">"; } function endElement($parser, $name) { echo "</<font color=\"#0000cc\">$name</font>>"; } function characterData($parser, $data) { echo "<b>$data</b>"; } function PIHandler($parser, $target, $data) { switch (strtolower($target)) { case "php": global $parser_file; // If the parsed document is "trusted", we say it is safe // to execute PHP code inside it. If not, display the code // instead. if (trustedFile($parser_file[$parser])) { eval($data); } else { printf("Untrusted PHP code: <i>%s</i>", htmlspecialchars($data)); } break; } } function defaultHandler($parser, $data) { if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") { printf('<font color="#aa00aa">%s</font>', htmlspecialchars($data)); } else { printf('<font size="-1">%s</font>', htmlspecialchars($data)); } } function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId, $publicId) { if ($systemId) { if (!list($parser, $fp) = new_xml_parser($systemId)) { printf("Could not open entity %s at %s\n", $openEntityNames, $systemId); return false; } while ($data = fread($fp, 4096)) { if (!xml_parse($parser, $data, feof($fp))) { printf("XML error: %s at line %d while parsing entity %s\n", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser), $openEntityNames); xml_parser_free($parser); return false; } } xml_parser_free($parser); return true; } return false; } function new_xml_parser($file) { global $parser_file; $xml_parser = xml_parser_create(); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); xml_set_processing_instruction_handler($xml_parser , "PIHandler"); xml_set_default_handler($xml_parser, "defaultHandler"); xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler"); if (!($fp = @fopen($file, "r"))) { return false; } if (!is_array($parser_file)) { settype($parser_file, "array"); } $parser_file[$xml_parser] = $file; return array($xml_parser, $fp); } if (!(list($xml_parser, $fp) = new_xml_parser($file))) { die("could not open XML input"); } echo "<pre>"; while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d\n", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } echo "</pre>"; echo "parse complete\n"; xml_parser_free($xml_parser);
_____________________________________
"כמים הפנים לפנים כך לב האדם לאדם"
|
|