繁体   English   中英

PHP:如何指定不希望对字符串求值?

[英]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);

您是否希望它看起来像那样? 如果是这样,则需要使用&lt; &gt; (严格来说,仅&lt;是必需的)来编码字符串。

“单引号”告诉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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM