2010-11-28 3 views
0

Dies könnte woanders beantwortet worden sein, wenn es so leid tut. Ich habe ein dynamisches XML-Dokument auf einem Remote-Server mit der Zeile <?xml version="1.0" encoding="UTF-8"?> in der ersten Zeile. Dies führt dazu, dass PHP eine Ausnahme auslöst, die ich wegen der Frage?>einschließlich XML in der Seite, die PHP zum Absturz bringt

habe. Wie kann ich dieses Dokument in meine Seite einfügen, ohne dass PHP eine Ausnahme auslöst?

Prost

EDIT: Ich bin auch von require verwenden, wahrscheinlich nicht der richtige Weg, es zu tun?

Antwort

3

Das klingt wie ein Problem mit der short_open_tag Konfigurationsoption, die <? als PHP-Eröffnungstag interpretieren wird. Sie können versuchen, die ini_set() Funktion zu verwenden, um short_open_tag zu false unmittelbar vor dem Einschließen der Remote-Datei zu setzen, und es danach wieder zu wechseln.

EDIT: Wenn die Datei/URL, die Sie referenzieren, keinen PHP-Code enthält, der ausgeführt werden muss, können Sie die readfile()-Funktion verwenden, um ihren Inhalt auf einen Schlag zu lesen und auszugeben. Dies wird beschädigt, wenn die Datei, die vom Server heruntergeladen wird, PHP-Snippets enthält, aber funktionieren sollte, wenn die Daten vollständig bereit sind.

+0

Versuchte Ihre Lösung und keine Würfel :(Nachdem ich darüber nachgedacht habe, merke ich, dass ich den falschen Weg benutze, um es in die Seite einzuschließen. Frage aktualisiert. – Rudiger

+0

Require sollte keinen Unterschied Rudiger machen. –

+0

Hmm, in Ordnung. Ich habe meine Antwort mit einer Notiz über readfile() aktualisiert, die bessere Ergebnisse für Ihren Anwendungsfall liefern könnte: –

4

require und include sind die falschen Werkzeuge dafür. Beide enthalten die Seite ja - aber dann versuchen sie, es als PHP-Code auf Ihrem Computer, ohne irgendwelche Sicherheitsmaßnahmen ausführen. Stellen Sie sich vor, was passieren würde, wenn der entfernte Rechner <?php system('poweroff') ?> zurückgibt - PHP auf Ihrem Rechner würde gerne versuchen, Ihren Server herunterzufahren.

Die Funktion, die Sie suchen, ist readfile() - es ruft die Remote-Datei ab und gibt sie aus - ohne zu versuchen, sie als PHP auszuführen.

Verwandte Themen