0

我有一个带有几个特殊字符的长字符串,特别是引号(“,')和更大的引号,小于括号..(<,>)它弄乱了我的 HTML。

在我花大量时间编写自己的函数之前,我想知道是否有一种简单的方法可以用它们的 ascii 等价物(>、< 等)替换所有出现的这些。我在 RegEx 上很糟糕:/

感谢您的回复。

4

3 回答 3

4

我相信您正在寻找htmlspecialchars

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

前任:

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

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

于 2012-12-08T03:46:49.800 回答
2

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

$new_str = htmlspecialchars($str, ENT_NOQUOTES);
于 2012-12-08T03:51:26.303 回答
1

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

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

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

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

于 2012-12-08T03:50:20.873 回答