- Home
- Categorie
- Coding e Sistemistica
- PHP
- problmea parser php con sax e caratteri accentati
-
problmea parser php con sax e caratteri accentati
ciao a tutti.
stò sbattendo la teasta da ormai due giorni su questo parser xml fatto in php.funziona tutto bene ma, quando all'interno di un tag incontro una lettera accentata o una parentesi o un'apice ecc mi tronca il dato:
per esempio:
il prodotto non é disponibile:
output: il prodotto nonnon riesco a trovare una soluzione.
vi posto lo script.[PHP]<?php
class Content_Handler {
function Content_Handler(){}
function start_element($parser, $name, $attrs) { global $print_characters; if ($name == "PRODUCT"){ $zupid = ($attrs["ZUPID"]); echo "$zupid<br>"; } if ($name == "NAME" || $name == "DESCRIPTION" || $name == "DEEPLINK") { $print_characters = true; } }
function end_element($parser, $name) { if ($name == "PRODUCT") { print "<br />"; } }
function characters($parser, $chars) { global $print_characters; if ($print_characters) { echo "$chars<br>"; $print_characters = false; } }}$print_characters = false;
$handler = new Content_Handler();$book_parser = xml_parser_create("UTF-8");
xml_parser_set_option($book_parser, XML_OPTION_TARGET_ENCODING, "UTF-8");xml_set_object($book_parser, $handler);xml_set_element_handler($book_parser, "start_element", "end_element");xml_set_character_data_handler($book_parser, "characters");$file = "mio.xml";
if ($file_stream = fopen($file, "r")) {
while ($data = fread($file_stream, 4096)) {
$this_chunk_parsed = xml_parse($book_parser, $data, feof($file_stream)); if (!$this_chunk_parsed) { $error_code = xml_get_error_code($book_parser); $error_text = xml_error_string($error_code); $error_line = xml_get_current_line_number($book_parser);
$output_text = "Parsing problem at line $error_line: $error_text"; die($output_text); } }} else {
die("Can't open XML file.");
}xml_parser_free($book_parser);function _preParse(&$data) { $data = preg_replace("/&(.?);/", '{ent{$1}}', $data); } function _postParse(&$data) { $data = preg_replace("/{ent{(.?)}}/", '&$1;', $data); }
?>[/PHP]
grazie a chiunque per lìaiuto
-
nessuno sa aiutarmi?