PHP:无效的字符符号html

时间:2009-03-10 14:53:24

标签: php character-encoding

我该如何清理包含无效字符的字符串,并在textarea中打印后会破坏h​​tml?

PHP的ord()为所述字符返回0,但我怀疑它不是null,我认为无论如何都不重要。

当在textarea中显示字符串时,无效字符后的所有文本以及textarea之后的所有html元素都会消失。

我尝试使用htmlentitieshtmlspecialcharsmb_convert_encodingiconv('UTF-8', 'UTF-8//IGNORE', $str),但他们都没有工作。

filter_var()尚未在我们正在使用的5.1.2中引入。

echo和var_dump将字符打印为

3 个答案:

答案 0 :(得分:2)

尝试filter_var($string, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW)

编辑:由于5.1.2没有filter_var,您可以尝试这个(这几乎是一样的):

preg_replace('/\p{Cc}/u', '', $string);

答案 1 :(得分:1)

在htmlentities,htmlspecialchars,mb_convert_encoding,iconv('UTF-8','UTF-8 // IGNORE',$ str)不起作用之前,我使用过这个正则表达式。 它删除了控制字符

$str = preg_replace( '/[\x00-\x08\x0B-\x0C\x0E-\x1F\x7F-\x9F]/', '', $str );

答案 2 :(得分:0)

可能:

$str = trim($str, chr(0));

...