PHP 字符串不允许 < 和 > 字符

标签 php string

根据以下示例,我的代码中有一个字符串:

<?php
$find = '<tag';
$string = 'blah blah <tag=something>';
?>

很简单,但是当我尝试回显字符串时,它不喜欢 < 或 > 字符。所有得到的回应是:

哈哈哈哈哈

所以,基本上我猜我需要转义这些字符才能使它们在 PHP 中工作,但我不确定具体如何转义。我将其用于模板系统,因此在 html 文件中可以使用以下方式包含一个文件:

<include="filename.html">

所以我不需要随时在屏幕上显示 < 和 > 字符,我只需要读取文件,找到这些标签的实例并做一些魔术。我已经让所有这些部分正常工作,但它只是包含多于/少于似乎无法正常工作的运算符的任何字符串。

有什么想法吗?

最佳答案

使用 PHP 可以生成 HTML 标记,因此您必须找到一种方法来区分 HTML 元素字符 ( < & > )。 HTML 中存在特殊的字符序列,称为 HTML entities .这些用和号描述,某种速记并以分号结尾。

这里有一些例子:

&gt;     : > (greater-than)
&lt;     : < (less-than)
&amp;    : & (ampersand)
&raquo;  : » (right angle quote marks)
&eacute; : é (e acute)

几乎所有的角色都可以用这样的实体来表示,但很快就会变得乏味。您只需记住 < 和 > 以及用于 URL 的 &。

如果您打算显示小于号/大于号,您的代码应该像这样重写。

<?php
$find = '&lt;tag';
$string = 'blah blah &lt;tag=something&gt;';
?>

如其他答案中所述,您可以使用函数 htmlspecialchars()转换变量中的字符(例如,来自用户输入)。

<?php echo htmlspecialchars($string); ?>

会显示blah blah <tag=something>用于在网络浏览器中查看。否则,例如,如果您在命令行上使用 PHP,则不需要使用此功能。

关于PHP 字符串不允许 < 和 > 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207029/

相关文章:

python - 字符串和整数之间的转换。 Python

php - 匹配两个mysql结果

php - 如何在 PHP 中获取 CSS 选择器?

php - PayPal REST API 获取总金额

c# - 如何从字符串列表中创建一个字符串?

Rust 中的字符串相等性 : how does referencing and dereferencing work?

c - 检查字符串中的字符是否为特定形式的函数

php - 使用 PHP 删除行时更新 mySQL 数据库中的 ids

PHP:监听 HTTP 请求/HTTP 流

c# - 逗号分隔字符串的对象