13

如何将 PHP 代码放入字符串中?

$phpCode = '<? if($condtion){ ?>';

出于某种原因,当我这样做并回显代码时,我没有得到开始的 PHP 标记,<?.

我错过了什么吗?有没有更好或更合适的方法来做到这一点?我目前正在查看有关字符串的 PHP 文档,但我想得到您的反馈。

编辑:我使用撇号(')而不是引号(")的原因是因为我不希望代码填写条件值。我希望它按原样回响。

4

7 回答 7

12

使用htmlspecialchars()

$phpCode = '<? if($condtion){ ?>';
echo htmlspecialchars($phpCode);
于 2013-04-26T15:28:13.507 回答
6

你需要echo htmlspecialchars($phpCode);

于 2013-04-26T15:28:15.033 回答
1

试试这些$str= htmlentities('<?php //***code***// ?>');

于 2013-04-26T15:31:50.730 回答
0

您还可以使用 HTML 实体。

当您仅替换 PHP 中的左方括号时,其余部分在使用 echo 解析时将被视为字符串:

<?php
    //&lt; is the HTML entity for '<' (without quotes).
    $str = '&lt;?php yourstring ?>';
    echo $str;
?>

HTML 实体

于 2013-04-26T15:33:27.410 回答
0

您可以通过以下方式将 PHP 代码输出为文本

$phpCode = '<? if($condtion){ ?>';
echo "<pre>";
echo htmlspecialchars($phpCode);
echo "</pre>";
于 2013-04-26T16:04:40.940 回答
0

已经有一些答案了,但只是加上我的 0.02 美元......

这段代码:

<?php
    $test = '<?php echo "hello world!"; ?>';
    echo $test;
?>

在浏览器中生成一个空白屏幕,但如果您查看源代码,您将看到以下输出:

<?php echo "hello world!"; ?>

这与浏览器呈现 PHP 代码的方式有关。浏览器的目的不是呈现 PHP 代码,而是呈现 HTML 标记。如果您因为正在测试将要写入文件的内容而回显代码,那么只需查看源代码以验证正在输出的内容就是您想要写入文件的内容。您不会在浏览器本身中看到它,因为它不知道如何呈现?php标签,更不用说如何处理该echo属性了。

可选地,就像每个人已经说过的那样,htmlspecialchars如果您只想在浏览器中呈现它而无需查看源代码,您可以传递字符串。如果您将其写入文件,您不会想要这样做,但可能会帮助您调试输出。

另一种选择是从命令行运行您的脚本。它不会尝试呈现您的输出,而是逐字逐句吐出。

于 2013-04-27T14:39:53.907 回答
-1

Eval php documentation

Eval()如果要运行字符串中的代码,请使用。

例子

$str = "Hello ";
eval('$str .= "World"');

echo $str;
/* Output: Hello World */
于 2013-04-26T15:32:36.013 回答