2009-04-28 5 views
0

Verwenden von php's DOMDocument-> LoadHTMLFile ('test.html'); gibt immer wieder einen Fehler an mich zurück und meldet einen Fehler im Inhalt in Zeile 36. Wenn man Zeichen für Zeichen löscht, stellt sich heraus, dass es sich um einen scheinbar leeren Raum handelt, der der Schuldige war. Das Kopieren/Einfügen dieses Satzes in einen anderen Editor (Editry) zeigte ein seltsames RS-Zeichen.PHP DOMDocument: loadHTMLFile Ersticken auf einem mysteriösen Zeichen: RS

Was ist es, und noch wichtiger, wie kann ich vermeiden, dass es wieder passiert?

+0

Und was ist die Fehlerzeichenfolge? –

Antwort

5

Es ist ein Record separator

Kann als Trennzeichen verwendet werden, um Felder von Datenstrukturen zu markieren. Wenn sie für hierarchische Ebenen verwendet werden, ist US die unterste Ebene (das Teilen von Klartext-Datenelementen), während RS, GS und FS auf steigender Ebene sind, um Gruppen zu teilen, die aus Elementen der Ebene darunter bestehen.

SEQ: ^^ - Dez: 30 - Hex: 1E - Akronym: RS

Was können Sie tun, ist strtr() zu verwenden, nicht sichtbare Zeichen abstreifen. An example by Joel Degan on PHP.net sollte dich auf den Weg bringen.

0

Wie ich mich erinnere, wirft PHP in diesem Fall einen nicht-fatalen Fehler. Es wird sich über viele Dinge beschweren, über die Sie nichts machen können, wenn die Datei nicht von Ihnen erstellt wird. Was Sie tun können, ist schlechte Programmierpraktiken zu verwenden und die Fehler zu unterdrücken, indem @ vor den Befehl gesetzt wird.

Es sollte immer noch die Datei laden, aber Sie werden die Fehler "ignorieren". Ignoranz ist Glückseligkeit?

+0

das ist genau das Problem: die Datei wird nicht von mir gemacht, und das Problem ist, dass der geladene nodeValue an der Stelle des RS-Charakters abgeschnitten ist ... Ich denke, ich würde lieber ein großes ERROR-Zeichen für den Benutzer zeigen Fall ... – pixeline

+0

Richtig, Sie steuern nicht die Datei, weshalb Sie die Fehler unterdrücken würden. Wenn Sie nur eine beliebige Website in DOMDocument laden, wird ein Fehler ausgegeben. Aber wenn Sie die Fehler mit @ unterdrücken, sollten Sie das Dokument laden können. Es ist einen Versuch wert, da es so einfach ist. –

+0

Es unterdrückt die Warnung, aber das Problem ist, dass der HTML-Code nicht nach diesem Fehlerzeichen analysiert wird. – pixeline