将PHP代码放在一个字符串中

时间:2013-04-26 15:27:15

标签: php string syntax

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

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

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

我错过了什么吗?有没有更好或更正确的方法来做到这一点?我目前正在查看PHP docs on strings,但我想得到您的反馈。

修改:我使用apsotrophes(')而不是引号(")的原因是因为我不希望代码填写值因为条件。我希望它按原样回应。

7 个答案:

答案 0 :(得分:12)

使用htmlspecialchars()

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

答案 1 :(得分:6)

您需要echo htmlspecialchars($phpCode);

答案 2 :(得分:1)

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

答案 3 :(得分:0)

您也可以使用HTML实体。

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

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

来源HTML Entities

答案 4 :(得分:0)

您可以按照以下方式将PHP代码输出为文本

$phpCode = '<? if($condtion){ ?>';
echo "<pre>";
echo htmlspecialchars($phpCode);
echo "</pre>";

答案 5 :(得分:0)

已经有一些答案,但只是添加我的$ 0.02 ......

此代码:

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

在浏览器中生成一个空白的白色屏幕,但是如果你查看源代码,你会看到这个输出:

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

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

可选地,就像所有人都已经声明的那样,如果你想要做的只是在浏览器中呈现它而不必查看源代码,你可以将字符串传递给htmlspecialchars。如果您将其写入文件,则不希望这样做,但可以帮助您调试输出。

另一种选择是从命令行运行脚本。它不会尝试渲染您的输出,而是只是逐字地吐出来。

答案 6 :(得分:-1)

Eval php documentation

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

示例

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

echo $str;
/* Output: Hello World */