【发布时间】:2012-12-08 03:40:40
【问题描述】:
我有一个带有几个特殊字符的长字符串,特别是引号(“,')和更大,小于括号..()它弄乱了我的 HTML。
在我花大量时间编写自己的函数之前,我想知道是否有一种简单的方法可以用它们的 ascii 等效项(>、< 等)替换所有出现的这些。我在 RegEx 上很糟糕:/
感谢您的回复。
【问题讨论】:
标签: php regex preg-replace ascii
我有一个带有几个特殊字符的长字符串,特别是引号(“,')和更大,小于括号..()它弄乱了我的 HTML。
在我花大量时间编写自己的函数之前,我想知道是否有一种简单的方法可以用它们的 ascii 等效项(>、< 等)替换所有出现的这些。我在 RegEx 上很糟糕:/
感谢您的回复。
【问题讨论】:
标签: php regex preg-replace ascii
我相信你正在寻找htmlspecialchars。
此函数会将所有 html 字符替换为其等效的 html 实体。
例如:
<?php
$before="<code>";
$after=htmlspecialchars($before);
echo $after; //<code>
?>
如果您还想替换单引号,请务必使用 ENT_QUOTES 作为第二个参数。
【讨论】:
有htmlentities() 和htmlspecialchars() 可用,具体取决于您的具体需要。如果你只想破解,、<和>,你可以这样做
$new_str = htmlspecialchars($str, ENT_NOQUOTES);
【讨论】:
您可以使用 php 的 str_replace 函数。查看http://php.net/manual/en/function.str-replace.php的php手册。
$text = str_replace('<', '', $text);
此代码通过将 $text 中的小于号替换为空字符串来删除它。
不过,我强烈建议您使用 preg_replace() 探索正则表达式方法。它更快、更强大。
【讨论】: