php过滤 的方法

今天我在处理一些数据的时候,看到页面上的字符串前面有空格,就用了trim()想要过滤掉字符串前面的空格,但是存入数据库之后字符串的前面依然有空格,查看了页面的源代码之后才发现字符串的前面是 ,然后直接使用:

str_replace(' ', '', $str);

来替换 结果发现根本没有被替换掉。

尝试使用ASCII码来匹配:

str_replace(chr(0xC2) . chr(0xA0), '', $str);

最后 终于被替换掉了!

PHP过滤非法字符(判断Kindereditor内容是否为空)

之前在网上找到一段PHP过滤非法字符的代码:

function safe_string($str)
{ //过滤安全字符
$str=str_replace("'","",$str);
$str=str_replace('"',"",$str);
$str=str_replace(" ","$nbsp;",$str);
$str=str_replace("\n;","
",$str);
$str=str_replace("<","<",$str);
$str=str_replace(">",">",$str);
$str=str_replace("\t"," ",$str);
$str=str_replace("\r","",$str);
$str=str_replace("/[\s\v]+/"," ",$str);
return $str;
}

后来在工作中,我使用Kindereditor的时候出现了一些问题,在编辑器中出现内容为空白的情况下,其实很多时候内容不一定为空,因为很可能还有隐藏的HTML标签存在,点击编辑器左上角的“HTML代码”就可以看到HTML标签了。那么怎么样判断是否出现这样的情况呢?

我的想法是先剥掉HTML的标签,然后去掉一空格、换行和制表符之后判断这个字符串是否为空即”。以下是判断的代码:

function safeString($str)
{ //过滤字符
 $str=strip_tags($str);    //剥掉HTML标签
 //去掉单双引号、空格、换行、制表符和 
 $str=str_replace("'","",$str);
 $str=str_replace('"',"",$str);
 $str=str_replace(" ","",$str);
 $str=str_replace("\n","",$str);
 $str=str_replace("\t"," ",$str);
 $str=str_replace("\r","",$str);
 $str=str_replace(" ","",$str);
 return $str;
}

使用以上函数过滤字符串之后,再判断字符串$str是否为空,即if($str==”),就完成这个判断了。