Weil der PHP-Parser beim Aufruf von Include in den HTML-Modus schaltet, und HTML-Dateien werden standardmäßig Ascii-geparst, nicht binär. Deshalb muss auch PHP-Code in den Includes mit <?php ?> versehen werden, damit er verarbeitet wird. Würde der Parser das anders handhaben, reichte einfacher Code ohne Start- und Endtags. Ob es da einen PHP-Einstellung gibt, entzieht sich meiner Kenntnis. Ich habe auch schon einige PDF-Dateien online stellen müssen, und habe anfangs eine PHP-Datei erstellt, welche mit das PDF mit dem übergebenen Dateinamen ausliest a la
<?php include "http ://www.meindomain.com/readpdf.php?file=test.pdf";<br />?\>
, wobei readpdf.php dann den header samt Datei ausgibt. Bei einigen, kurzen PDFs hat das funktioniert, seltsamerweise kam bei längeren komplizierteren PDFs ein „Unexpected T_STRING in Line…“ wobei die Zeile, in der der Fehler auftrat, außerhalb des Code-Bereichs lag, die Zeile gabs nicht mal. Auch den Header in die index.php, also die Datei, welche das Include vollzieht, zu setzen, hat nix gebracht. So habe ich mich entschlossen, direkt auf die URL zu verweisen, anstatt ein Include zu nehmen, die unsaubere Lösung wäre ein (I-)Frame zu verwenden. Ich habe mich anstatt der include-Methode dann für
<?php header("Location:http ://www.meindomain.com/readpdf.php?file=test.pdf");<br />?\>
entschlossen, und das funktioniert wunderbar. Eine Alternative wäre das PDF-Objekt, mit dem habe ich aber noch keine Erfahrungen gesammelt. http://it2.php.net/manual/en/ref.pdf.php Das direkte Include hat jedenfalls noch nie funktioniert, auch nicht mit einfachen PDFs, da mault der Browser, dass die Datein nicht mit %PDF- beginnt. Hast Du hierfür etwa eine Lösung? Die könnte ich nämlich auch gebrauchen.
Gruß,
Rudy
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]