我有一个带有几个特殊字符的长字符串,特别是引号(“,')和更大的引号,小于括号..(<,>)它弄乱了我的 HTML。
在我花大量时间编写自己的函数之前,我想知道是否有一种简单的方法可以用它们的 ascii 等价物(>、< 等)替换所有出现的这些。我在 RegEx 上很糟糕:/
感谢您的回复。
我有一个带有几个特殊字符的长字符串,特别是引号(“,')和更大的引号,小于括号..(<,>)它弄乱了我的 HTML。
在我花大量时间编写自己的函数之前,我想知道是否有一种简单的方法可以用它们的 ascii 等价物(>、< 等)替换所有出现的这些。我在 RegEx 上很糟糕:/
感谢您的回复。
我相信您正在寻找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() 探索正则表达式方法。它更快,更强大。