Die Antwort ist eine Kombination aus einigen der anderen Vorschläge, aber keiner von ihnen würde das Problem lösen, auch kombiniert!
Problem 1. Unescaped Doppel Zitate
"Hello! <?php include("template.html"); ?>"
Hier haben Sie, was wie eine einzelne Saite aussieht. PHP sieht das öffnende Zitat, und dann kommt es zum Zitat direkt vor der Wortvorlage und es heißt: Oh, die Zeichenfolge ist jetzt fertig. Dann sieht es eine Vorlage, die es für eine Variable hält. Dann sieht es einen Punkt und denkt, dass es ein neuer Verkettungsoperator ist. Dann sieht es das Anführungszeichen nach html
und es denkt, dass es eine neue Zeichenfolge ist, die direkt nach einer solchen Variable nicht erlaubt ist.
Also, Sie müssen entweder:
'Hello! <?php include("template.html"); ?>'
(Was ist das, was ich würde empfehlen, Einzelzeichenfolgen in Anführungszeichen in PHP läuft etwas schneller, weil es nicht für Variablen innerhalb der Zeichenfolge suchen hat..)
oder, wie die andere Person vorgeschlagen, die Escape-Zeichen für die doppelten Anführungszeichen:
"Hello! <?php include(\"template.html\"); ?>"
Problem 2.Falscher Ort für htmlspecialchars()
Aber Sie haben ein anderes, schlimmeres Problem. htmlspecialchars wandelt im Grunde alle HTML-Zeichen in ihre HTML-Zeichen-Entitäten um.
Mit anderen Worten, <
wird <
.
Also, was Sie in Ihren PHP-Datei sind die Ausgabe wird sein:
Hello! <?php include("template.html"); ?>
Wenn Sie diese Datei ausführen, wird das PHP nicht ausführen, weil es keine gültige offenen Tag ist.
Problem 3. Diese von nicht eine gute Verwendung ist enthalten
Ich wette, es gibt einen Weg besseren Weg, um Ihr Problem zu lösen als PHP zu verwenden, um ein PHP-include-Tag zu schreiben, die eine andere Datei enthält.
Ein früherer Benutzer hat Recht ... file_put_contents() oder file_get_contents() ist wahrscheinlich etwas näher an dem, was Sie wollen. Aber wirklich, es gibt wahrscheinlich einen besseren Weg, wenn Sie PHP verwenden, um eine andere Datei in PHP zu schreiben. Ich garantiere es fast.
Gumbo löste Ihr erstes Problem. Was erwarten Sie von den htmlspecialchars? Es wird deine Zeichenfolge in 'Hallo! <? Php include ("template.html"); ? > "Planen Sie, das an den Browser zu senden? – jmucchiello