在生成的PHP文件中包含动态PHP

在生成的PHP文件中包含动态PHP,php,Php,我正在尝试生成包含模板html文件的php文件,如下所示: $page = htmlspecialchars("Hello! <?php include("template.html"); ?>"); $page=htmlspecialchars(“你好!”); 但是,当我运行它时,我得到: 解析错误:语法错误,第15行的/home/oliver/web/postmanapp.com/public/core.php中出现意外的T_字符串 我非常确定我需要转义PHP代码,只是不确定

我正在尝试生成包含模板html文件的php文件,如下所示:

$page = htmlspecialchars("Hello! <?php include("template.html"); ?>");
$page=htmlspecialchars(“你好!”);
但是,当我运行它时,我得到:

解析错误:语法错误,第15行的/home/oliver/web/postmanapp.com/public/core.php中出现意外的T_字符串


我非常确定我需要转义PHP代码,只是不确定如何转义。

必须转义以双引号声明的字符串中的任何双引号。因此,这应该是可行的:

$code = "Hello! <?php include(\"template.html\"); ?>";

必须转义以双引号声明的字符串中的任何双引号。因此,这应该是可行的:

$code = "Hello! <?php include(\"template.html\"); ?>";

问题在于?>在php中总是以代码块结尾,导致字符串未终止。您只需将end标记拆分为两个可以连接的单独字符串:

$page = htmlspecialchars("Hello! <?php include("template.html"); ?" . ">");

$page=htmlspecialchars(“Hello!问题在于?>在php中总是以代码块结尾,从而导致未终止的字符串。您只需将end标记拆分为两个可以连接的单独字符串:

$page = htmlspecialchars("Hello! <?php include("template.html"); ?" . ">");

$page=htmlspecialchars(“你好!答案是其他一些建议的组合,但它们都不能解决问题,即使是组合在一起

问题1.未替换的双引号

"Hello! <?php include("template.html"); ?>"
(这是我的建议。PHP中的单引号字符串运行速度稍快,因为它不必查看字符串内部的变量。)

或者,正如另一个人所建议的,在双引号中使用转义字符:

$page = htmlspecialchars("Hello! <?php include('template.html'); ?" . ">");
"Hello! <?php include(\"template.html\"); ?>"
运行该文件时,PHP不会执行,因为没有有效的open标记

问题3.这不是包含的好用法

我打赌有一种比使用PHP编写包含另一个文件的PHP包含标记更好的方法来解决您的问题


以前的用户是对的…file\u put\u contents()或file\u get\u contents()可能与您想要的更接近。但实际上,无论何时使用PHP编写另一个文件,都可能有更好的方法。我几乎可以保证这一点。

答案是其他一些建议的组合,但它们都不能解决问题,即使是组合在一起

问题1.未替换的双引号

"Hello! <?php include("template.html"); ?>"
(这是我的建议。PHP中的单引号字符串运行速度稍快,因为它不必查看字符串内部的变量。)

或者,正如另一个人所建议的,在双引号中使用转义字符:

$page = htmlspecialchars("Hello! <?php include('template.html'); ?" . ">");
"Hello! <?php include(\"template.html\"); ?>"
运行该文件时,PHP不会执行,因为没有有效的open标记

问题3.这不是包含的好用法

我打赌有一种比使用PHP编写包含另一个文件的PHP包含标记更好的方法来解决您的问题


以前的用户是对的…file\u put\u contents()或file\u get\u contents()可能与您想要的更接近。但实际上,任何时候您使用PHP编写另一个文件时,都可能有更好的方法。我几乎可以保证。

Gumbo解决了您的第一个问题。您希望htmlspecialchars做什么?它会将您的字符串转换为“Hello!?PHP include”(“template.html”);?'您打算将其发送到浏览器吗?Gumbo解决了您的第一个问题。您希望htmlspecialchars做什么?它会将您的字符串转换为“Hello!?php include”(“template.html”)?'您打算将其发送到浏览器吗?这实际上不是真的。您可以将?>放在双引号内很好。这实际上不是真的。您可以将?>放在双引号内很好。