2009年6月1日 星期一

php中高效能清除HTML 標記、空白字符

php中高效能清除html

在字符截取時常會因為HTML格式發生意外,ASP是,PHP也是,如果是可預見的簡單HTML格式用replace就行了,對於文章正文這一類裡面可能包含所有的HTML格式,想高效點還是用下面的的,已測試


$search = array ("']*?>.*?'si", // 去掉 javascript

"'<[/!]*?[^<>]*?>'si", // 去掉 HTML 標記

"'([rn])[s]+'", // 去掉空白字符

"'&(quot|#34);'i", // 替換 HTML 實體

"'&(amp|#38);'i",

"'&(lt|#60);'i",

"'&(gt|#62);'i",

"'&(nbsp|#160);'i",

"'&(iexcl|#161);'i",

"'&(cent|#162);'i",

"'&(pound|#163);'i",

"'&(copy|#169);'i",

"'&#(d+);'e"); // 作為 PHP 代碼運行

$replace = array ("",

"",

"\1",

"\"",

"&",

"<", ">",

" ",

chr(161),

chr(162),

chr(163),

chr(169),

"chr(\1)");

//$document為需要處理字符串,如果來源為文件可以$document = file_get_contents($filename);

$text = preg_replace($search, $replace, $document);

網誌存檔