繁体   English   中英

我需要逃脱吗?

[英]Do I need to escape this?

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

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

只需使用htmlentities函数

<?php echo“ <?php echo \\” hello \\“?>”?>

打印出<?php echo“ hello”?>

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

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

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

在HTML中,

&lt;?php

或在PHP中:

echo htmlentities('<?php');

如果这是您的代码:

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

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

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

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

当其回显时,将导致以下HTML源:

&lt;php

在浏览器中显示时显示:

<?php

如果在字符串中回显它们,则将不会执行它们。

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

不,您不必做任何特别的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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