《php過濾英文和中文標點符號代碼》要點:
本文介紹了php過濾英文和中文標點符號代碼,希望對您有用。如果有疑問,可以聯系我們。
php 過濾英文標點符號 過濾中文標點符號,網上有這個函數:
function filterMark($text){ if(trim($text)=='')return ''; $text=urlencode($text); $text=preg_replace("/(?:%7E|%60|%21|%40|%23|%24|%25|%5E|%26|%27|%2A|%28|%29|%2B|%7C|%5C|%3D|\-|_|%5B|%5D|%7D|%7B|%3B|%22|%3A|%3F|%3E|%3C|%2C|\.|%2F|%A3%BF|%A1%B7|%A1%B6|%A1%A2|%A1%A3|%A3%AC|%7D|%A1%B0|%A3%BA|%A3%BB|%A1%AE|%A1%AF|%A1%B1|%A3%FC|%A3%BD|%A1%AA|%A3%A9|%A3%A8|%A1%AD|%A3%A4|%A1%A4|%A3%A1|%E3%80%82|%EF%BC%81|%EF%BC%8C|%EF%BC%9B|%EF%BC%9F|%EF%BC%9A|%E3%80%81|%E2%80%A6%E2%80%A6|%E2%80%9D|%E2%80%9C|%E2%80%98|%E2%80%99|%EF%BD%9E|%EF%BC%8E|%EF%BC%88)+/",' ',$text); $text=urldecode($text); return trim($text); }
這個函數做過濾很不錯,做數據采集或者數據驗證過程中,經常需要做一些特殊的數據處理,如去除中英文標點符號,
原理是先轉成URL編碼,統一清理。
$keyword="好‘。,好學習PHP!!!"; $keyword=urlencode($keyword);//將關鍵字編碼 $keyword=preg_replace("/(?:%7E|%60|%21|%40|%23|%24|%25|%5E|%26|%27|%2A|%28|%29|%2B|%7C|%5C|%3D|\-|_|%5B|%5D|%7D|%7B|%3B|%22|%3A|%3F|%3E|%3C|%2C|\.|%2F|%A3%BF|%A1%B7|%A1%B6|%A1%A2|%A1%A3|%A3%AC|%7D|%A1%B0|%A3%BA|%A3%BB|%A1%AE|%A1%AF|%A1%B1|%A3%FC|%A3%BD|%A1%AA|%A3%A9|%A3%A8|%A1%AD|%A3%A4|%A1%A4|%A3%A1|%E3%80%82|%EF%BC%81|%EF%BC%8C|%EF%BC%9B|%EF%BC%9F|%EF%BC%9A|%E3%80%81|%E2%80%A6%E2%80%A6|%E2%80%9D|%E2%80%9C|%E2%80%98|%E2%80%99)+/",'',$keyword); $keyword=urldecode($keyword);//將過濾后的關鍵字解碼 echo $keyword;
這個正則是會替換內容中所有標點符號,如果你只想去掉前面,則在正則/后加^符號,
/^(?:%7E|%60|%21|%40|%23|%24|%25|%5E|%26|%27|%2A|%28|%29|%2B|%7C|%5C|%3D|\-|_|%5B|%5D|%7D|%7B|%3B|%22|%3A|%3F|%3E|%3C|%2C|\.|%2F|%A3%BF|%A1%B7|%A1%B6|%A1%A2|%A1%A3|%A3%AC|%7D|%A1%B0|%A3%BA|%A3%BB|%A1%AE|%A1%AF|%A1%B1|%A3%FC|%A3%BD|%A1%AA|%A3%A9|%A3%A8|%A1%AD|%A3%A4|%A1%A4|%A3%A1|%E3%80%82|%EF%BC%81|%EF%BC%8C|%EF%BC%9B|%EF%BC%9F|%EF%BC%9A|%E3%80%81|%E2%80%A6%E2%80%A6|%E2%80%9D|%E2%80%9C|%E2%80%98|%E2%80%99|%EF%BD%9E|%EF%BC%8E|%EF%BC%88)+/
同樣,如果只想過濾后面的符號,則在后面/前加$符號。
但是正則方法效率偏低,下面是維易PHP的函數(PHP培訓 vephp.com),用于去掉字符串兩邊的標點符號,你可以添加進去自己要去掉的符號:
$reCon='!+(*+)-這是一個中文內容,使用PHP去除前后的標點符號。+【()】'; echo trim($reCon,'。,()—、【】:!'); echo "\n"; echo clearChar($reCon); function clearChar($str, $back=false) { $newStr = ''; $limitChar = ['。', ',', '(', ')', '—', '、', '【', '】', ':', '!', ' 1', '2', '3', '4', '5', '6', '7', '8', '9', ',', '.', ':', '!', '<', '>', '/', '\\', '?', '*', '^', '%', '-', '_', '+' ]; $reConLen = mb_strlen ($str); $start = !$back ? 0: $reConLen-1; for($i=$start;(!$back? ($i<$reConLen) : ($i>=0)); (!$back ? $i++ : $i--)) { $char = mb_substr ($str, $i,1, CHARSET); if(!in_array ($char, $limitChar)){ $newStr = !$back ? mb_substr ($str, $i) : mb_substr ($str, 0,$i+1); break; } } return !$back ? clearChar($newStr, true) : trim ($newStr); }
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/172.html