還記得以前在工作中,將爬來的其它網站的數據導到xml。但是會遇到一個問題:即網頁會有ascII的控制字符。一開始以為是別人為了防止采集而加入的,然後發現一個就往過濾表裡加一個。直到慢慢發現,他們都是ascii表裡的字符。找到原因了,就好解決了。
/**
* 根據ascii碼過濾控制字符
* @param type $string
*/
public static function special_filter($string)
{
if(!$string) return '';
$new_string = '';
for($i =0; isset($string[$i]); $i++)
{
$asc_code = ord($string[$i]); //得到其asc碼
//以下代碼旨在過濾非法字符
if($asc_code == 9 $asc_code == 10 $asc_code == 13){
$new_string .= ' ';
}
else if($asc_code > 31 && $asc_code != 127){
$new_string .= $string[$i];
}
}
return trim($new_string);
}