根据以下示例,我的代码中有一个字符串:
<?php
$find = '<tag';
$string = 'blah blah <tag=something>';
?>
Run Code Online (Sandbox Code Playgroud)
很简单,但是当我尝试回显字符串时,它不喜欢<或>字符.所有得到回应的是:
等等等等
所以,基本上我猜我需要转义这些字符,让他们在工作PHP但林不知道到底如何.我正在将它用于模板系统,因此在html文件中可以使用以下命令包含文件:
<include="filename.html">
Run Code Online (Sandbox Code Playgroud)
所以我不需要随时在屏幕上显示<和>字符,我只需要阅读文件,找到这些标签的实例并做一些魔术.我已经完成了所有这部分工作,但它只是包含多于/少于运算符的任何字符串,似乎无法正常工作.
有任何想法吗?
sle*_*anc 13
使用PHP,您可以生成HTML标记,因此您必须找到区分HTML元素字符(<&>)的方法.HTML中存在特殊的字符序列,称为HTML实体.这些是用&符号,某种速记和以分号结尾的描述.
这里有些例子:
> : > (greater-than)
< : < (less-than)
& : & (ampersand)
» : » (right angle quote marks)
é : é (e acute)
Run Code Online (Sandbox Code Playgroud)
几乎所有的角色都可以用这样的实体来表示,但很快就会变得单调乏味.您只需记住<和>,以及&for URL.
如果您的意图是显示小于/大于标志,那么您的代码应该像这样重写.
<?php
$find = '<tag';
$string = 'blah blah <tag=something>';
?>
Run Code Online (Sandbox Code Playgroud)
如其他答案中所述,您可以使用该函数htmlspecialchars()转换变量中的字符(例如,来自用户输入).
<?php echo htmlspecialchars($string); ?>
Run Code Online (Sandbox Code Playgroud)
将显示blah blah <tag=something>以在Web浏览器中查看.另外,如果您在命令行中使用PHP,则不需要使用此功能.
您需要使用 HTML 字符来避免将其转换为 HTML。
所以:
echo htmlspecialchars("<hello>");
Run Code Online (Sandbox Code Playgroud)