Mailinglisten-Archive |
Hallo,
wie speichere und lese ich einen XML Container, der einen Zeilenumbruch
in einem Attribut enthält? Das Einlesen des XML muß mit PHP/XML (Expat)
erfolgen. Generiert wird manuell. DOM steht per Definition nicht zur
Verfügung.
Für die Kodierung benutze ich derzeit:
utf8_encode(
preg_replace(
array( "_(at)_<_(at)_", "_(at)_>_(at)_", "_(at)_'_(at)_", '_(at)_"_(at)_', "_(at)_&_(at)_", "_(at)_[\n\r]_(at)_"),
array("<", ">", "'", """, "&", '
'),
$value
)
);
Zur Dekodierung wird folgendes benutzt:
utf8_decode(
preg_replace(
array("_(at)_<_(at)_", "_(at)_>_(at)_", "_(at)_'_(at)_", "_(at)_"_(at)_", "_(at)_&_(at)_"),
array("<", ">", "'", '"', "&"),
$value
)
);
Geparst wird mit:
$parser = _(at)_xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parse_into_struct($parser, $xml, &$values, &$index);
Es kommt zu einer Verdoppelung der Zeilenumbrüche. Und nein, die
Entfernung von _(at)_[\n\r]_(at)_ aus der Kodierungsanweisung reißt es nicht raus.
Wie macht man es richtig?
Ulf
php::bar PHP Wiki - Listenarchive