我需要逃避这个吗?

时间:2009-11-11 18:31:45

标签: php escaping

这可能有点不寻常,但我需要回应<?php。但是,我认为PHP将其视为实际<?php并开始执行代码而不是将其视为字符串。如何逃避<?php?>以便将它们视为字符串?手册中没有任何相关内容。

谢谢,我知道这有点不寻常。

7 个答案:

答案 0 :(得分:2)

只需使用htmlentities功能

答案 1 :(得分:2)

&lt;?php echo“&lt;?php echo \”hello \“?&gt;” ?&GT;

打印出&lt;?php echo“hello”?&gt;

查看PHP关于如何打印数据的函数源代码。

http://in2.php.net/source.php?url=/manual/en/function.htmlentities.php

答案 2 :(得分:1)

您可以使用&lt;&gt; html实体(替换'&lt;'和'&gt;')。这些只在浏览器中处理,因此PHP不会尝试运行该代码。

答案 3 :(得分:1)

在HTML中,

&lt;?php

或者在PHP中:

echo htmlentities('<?php');

答案 4 :(得分:1)

如果这是您的代码:

<?php
  echo '<?php';
?>

你将其作为网页运行,你什么也看不见。但不是因为PHP没有回显您的字符串<?php,而是因为浏览器看到<并认为这是标记的开头,并且不显示标记。这显然是一个错误,但这就是浏览器正在做的事情。

要解决此问题,请转义<部分,使用htmlentities()

<?php
  echo htmlentities('<?php');
?>

当它被回应时,将导致HTML源:

&lt;php

在浏览器中显示时显示:

  

&LT; PHP

答案 5 :(得分:0)

如果它们以字符串形式回显,则不会被执行。

答案 6 :(得分:0)

echo '<?php ?>'; // prints <?php ?>
echo "<?php ?>"; // prints <?php ?>

不,你不需要做任何特别的事。