我有很长的字符串一些特殊字符,特别是引号(”“)和大于,小于括号。(<,>),并且它搞乱了我的HTML。PHP替代preg_replace()?
我在想,如果有一个简单的方法,用它们的ASCII等价物来替换这些所有出现(& GT;,LT &;等),我花了很多时间写我自己的功能之前,我在可怕的正则表达式:/
谢谢您
我有很长的字符串一些特殊字符,特别是引号(”“)和大于,小于括号。(<,>),并且它搞乱了我的HTML。PHP替代preg_replace()?
我在想,如果有一个简单的方法,用它们的ASCII等价物来替换这些所有出现(& GT;,LT &;等),我花了很多时间写我自己的功能之前,我在可怕的正则表达式:/
谢谢您
有htmlentities()
和htmlspecialchars()
可用,这取决于你确切的需要。如果你只是想打破,
,<
和>
,你可以做
$new_str = htmlspecialchars($str, ENT_NOQUOTES);
我相信你正在寻找htmlspecialchars。
该函数将用它们的html实体等价物替换所有的html字符。
例:
<?php
$before="<code>";
$after=htmlspecialchars($before);
echo $after; //<code>
?>
要确保,如果你要同时更换单引号使用ENT_QUOTES作为第二个参数。
您可以使用php的str_replace函数。检查php手册http://php.net/manual/en/function.str-replace.php。
$text = str_replace('<', '', $text);
此代码通过将其替换为空字符串来从$ text中移除小于号的符号。
但我强烈建议您使用preg_replace()探索正则表达式方法。速度更快,功能更强大。
美丽。实体是我所需要的。谢谢。 –