我认为你的答案是关于逃跑而不是处决,例如:
Why does this text appear bold
与之相比:
<b>Why does this text appear bold</b>
问题在于逃逸,但首先,请注意:
称之为Execution的问题是Execution这个词用错了,这就是为什么你的google搜索没有产生结果。这里没有执行PHP。相反,您的浏览器返回HTML标记,并且浏览器正在显示它。您想要的是显示一个代码段,而不将其显示为真正的HTML。因此,问题是转义/编码,而不是执行,如果称之为执行,人们会感到困惑。
执行意味着代码在运行,这里没有代码在运行。
esc_html
函数的工作原理esc_html( <code goes here>)
, 这不是函数的工作方式。esc_html
不是像if语句或while循环那样包装东西的神奇修饰符,它不是语言构造,而是函数。
函数获取某个对象,对该对象进行处理,然后返回它。
function func ( $in ) {
return \'output\';
}
$in = \'input\';
$out = func( $in );
echo $out; // output
esc_html
是一个转义函数。它接受不安全的输入,进行转义,然后返回。
E、 g。
echo esc_html( \'<script>dangerous();</script>\');
在HTML源中输出:
<script>dangerous();</script>
将在浏览器中呈现为可读字符串,如下所示:
<script>dangerous();</script>
针对您的情况
$out = \'unescaped html code with no html entities\';
echo esc_html( $out );
此外,您可能希望研究其他代码的其他转义函数,作为安全措施。