preg_replace()的PHP替代方案?

时间:2012-12-08 03:40:40

标签: php regex preg-replace ascii

我有一个包含多个特殊字符的长字符串,特别是引号(“,”)和更大,小于括号..(<,>)并且它会弄乱我的HTML。

我想知道是否有一种简单的方法可以在我花费大量时间编写自己的函数之前用ascii等价物(& gt;,& lt;等)替换所有这些事件。我在RegEx很糟糕:/

感谢您的回复。

3 个答案:

答案 0 :(得分:4)

我相信你正在寻找htmlspecialchars

此函数将用其html实体等效替换所有html字符。

例如:

<?php
$before="<code>";
$after=htmlspecialchars($before);
echo $after; //&lt;code&gt;
?>

如果您还要替换单引号,请务必使用ENT_QUOTES作为第二个参数。

答案 1 :(得分:2)

htmlentities()htmlspecialchars()可用,具体取决于您的确切需要。如果您只想打破,<>,则可以

$new_str = htmlspecialchars($str, ENT_NOQUOTES);

答案 2 :(得分:1)

你可以使用php的str_replace函数。查看http://php.net/manual/en/function.str-replace.php上的php手册。

$text = str_replace('<', '', $text);

此代码通过将其替换为空字符串来删除$ text中的少于符号。

我强烈建议您使用preg_replace()来探索正则表达式方法。它更快,更强大。