[英]PHP: how do you specify that you do not want a string evaluated?
我在这样的数据库中有一些php代码
$x = "<?php some code here ?>";
但我想将整行输出到浏览器而不用PHP对其进行评估。 目前,它正在对其进行评估。 我考虑过转义,但这没用。 一个人如何做到这一点?
谢谢
编辑:
<?php
echo '<? hey ?>';
echo "<dog dog>";
?>
如果我运行该代码,则dog dog标签将显示在浏览器源代码中,其中<? hey ?>
<? hey ?>
没有。 似乎它仍将对其进行评估。
编辑,得到答案,谢谢大家。
做就是了:
echo htmlspecialchars($x);
您是否希望它看起来像那样? 如果是这样,则需要使用<
和>
(严格来说,仅<
是必需的)来编码字符串。
“单引号”告诉PHP完全照原样插入字符串。 它将完全包括所有空格和字符。
“双引号”告诉PHP解析字符串。 这样可以减少空格,替换变量并解析任何其他魔术字符串。
最后,`backticks`用于shell命令。
如果您试图在完全像这样的浏览器中显示它,则可能需要尝试htmlentities($string)
。
使用'(单引号)代替“(双引号)
PHP的双引号会评估表达式,单引号则不会:
$a = 123;
$b = "value of $a"; // value of 123
$c = 'value of $a'; // value of $a
用单引号唯一的问题是他们不明白像字符\\n
为换行(将被打印成\\n
放在单引号时不换行)。
因此,您所需要做的就是:
echo '<?php some code here ?>';
?
有关更多信息,请参见PHP手册中的字符串 。
您不清楚要评估的内容。
如果您在谈论变量,这里有很多正确的答案。
如果您在谈论<? ?>
<? ?>
阻止,出了点问题。 该字符串不应该,如果PHP块中(如果你指的是打开和关闭PHP语句)评估。
也许您错过了开头和结尾<?
?>
手术前后?
如果您正在输出php代码,您甚至可以考虑使用highlight_string ,它将在输入上执行语法突出显示
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.