如何将PHP代码放入字符串?
$phpCode = '<? if($condtion){ ?>';
出于某种原因,当我这样做并回显代码时,我没有得到开放的PHP标记,<?
。
我错过了什么吗?有没有更好或更正确的方法来做到这一点?我目前正在查看PHP docs on strings,但我想得到您的反馈。
修改:我使用apsotrophes('
)而不是引号("
)的原因是因为我不希望代码填写值因为条件。我希望它按原样回应。
答案 0 :(得分:12)
$phpCode = '<? if($condtion){ ?>';
echo htmlspecialchars($phpCode);
答案 1 :(得分:6)
您需要echo htmlspecialchars($phpCode);
答案 2 :(得分:1)
试试这些$str= htmlentities('<?php //***code***// ?>');
答案 3 :(得分:0)
您也可以使用HTML实体。
当您只更换PHP中的空方括号时,其余部分在使用echo解析时将被视为字符串:
<?php
//< is the HTML entity for '<' (without quotes).
$str = '<?php yourstring ?>';
echo $str;
?>
答案 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()
。
示例强>
$str = "Hello ";
eval('$str .= "World"');
echo $str;
/* Output: Hello World */