根据以下示例,我的代码中有一个字符串:
<?php
$find = '<tag';
$string = 'blah blah <tag=something>';
?>
很简单,但是当我尝试回显字符串时,它不喜欢 < 或 > 字符。所有得到的回应是:
哈哈哈哈哈
所以,基本上我猜我需要转义这些字符才能使它们在 PHP 中工作,但我不确定具体如何转义。我将其用于模板系统,因此在 html 文件中可以使用以下方式包含一个文件:
<include="filename.html">
所以我不需要随时在屏幕上显示 < 和 > 字符,我只需要读取文件,找到这些标签的实例并做一些魔术。我已经让所有这些部分正常工作,但它只是包含多于/少于似乎无法正常工作的运算符的任何字符串。
有什么想法吗?
最佳答案
使用 PHP 可以生成 HTML 标记,因此您必须找到一种方法来区分 HTML 元素字符 ( < & > )。 HTML 中存在特殊的字符序列,称为 HTML entities .这些用和号描述,某种速记并以分号结尾。
这里有一些例子:
> : > (greater-than)
< : < (less-than)
& : & (ampersand)
» : » (right angle quote marks)
é : é (e acute)
几乎所有的角色都可以用这样的实体来表示,但很快就会变得乏味。您只需记住 < 和 > 以及用于 URL 的 &。
如果您打算显示小于号/大于号,您的代码应该像这样重写。
<?php
$find = '<tag';
$string = 'blah blah <tag=something>';
?>
如其他答案中所述,您可以使用函数 htmlspecialchars()
转换变量中的字符(例如,来自用户输入)。
<?php echo htmlspecialchars($string); ?>
会显示blah blah <tag=something>
用于在网络浏览器中查看。否则,例如,如果您在命令行上使用 PHP,则不需要使用此功能。
关于PHP 字符串不允许 < 和 > 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207029/