Hi all,
für meine Website mit einer großen Datenbank, die ich offline auf localhost bearbeite, habe ich ein PHP-Script geschrieben, dass die Daten aus der MySQL-Tabelle ausliest, dann in XML schreibt und mit cURL an ein weiteres PHP-Script auf meiner Online-Website schickt. Dieses Script gibt die Daten dann in die Online-MySQL-Datenbank ein.
Das funktioniert alles schön und gut, nur leider tauchen in den Datensätzen häufig Sonderzeichen auf. Dafür lasse ich die Sonderzeichen mit Unicode-Bezeichnungen ersetzen - ich kann den Code hier nicht posten, weil er falsch dargestellt wird, die Sonderzeichen werden wohl hier im Forum auch falsch kodiert. Habe eine Textdatei mit dem Code angehängt.
Dieses Ersetzen funktioniert gut, und auch Zeichen wie é kommen gut an. Allerdings kommt es z.B. bei á schon zu Schwierigkeiten. Das Ergebnis ist in diesem Fall á.
Ich habe jetzt schon die Funktion iconv() vor dem Verschicken als XML ausprobiert:
Hierbei kommt es immer zu einem Fehler im XML:
Hier Zeilen 4 und 5 des empfangenden Scripts:
Notfalls würde ich eben Zeichen wie á einfach durch a ersetzen (wie es die zweite oben angegebene Funktion theoretisch auch machen müsste), aber es muss doch eine Lösung geben.
Ich hoffe, mein Problem wird verstanden und es wäre nett, wenn mir jemand helfen könnte.
Viele Grüße
Der Seb
für meine Website mit einer großen Datenbank, die ich offline auf localhost bearbeite, habe ich ein PHP-Script geschrieben, dass die Daten aus der MySQL-Tabelle ausliest, dann in XML schreibt und mit cURL an ein weiteres PHP-Script auf meiner Online-Website schickt. Dieses Script gibt die Daten dann in die Online-MySQL-Datenbank ein.
Das funktioniert alles schön und gut, nur leider tauchen in den Datensätzen häufig Sonderzeichen auf. Dafür lasse ich die Sonderzeichen mit Unicode-Bezeichnungen ersetzen - ich kann den Code hier nicht posten, weil er falsch dargestellt wird, die Sonderzeichen werden wohl hier im Forum auch falsch kodiert. Habe eine Textdatei mit dem Code angehängt.
Dieses Ersetzen funktioniert gut, und auch Zeichen wie é kommen gut an. Allerdings kommt es z.B. bei á schon zu Schwierigkeiten. Das Ergebnis ist in diesem Fall á.
Ich habe jetzt schon die Funktion iconv() vor dem Verschicken als XML ausprobiert:
PHP-Code:
$string = iconv('UTF-8','ISO-8859-1',$string);
// oder:
$string = iconv('UTF-8','ISO-8859-1//TRANSLIT',$string);
Entity: line 167: parser error : xmlParseEntityRef: no name in ... on line 5
PHP-Code:
$xmlstring = file_get_contents("php://input");
$xml = new SimpleXMLElement($xmlstring);
Ich hoffe, mein Problem wird verstanden und es wäre nett, wenn mir jemand helfen könnte.
Viele Grüße
Der Seb
Kommentar