PHP 中如何移除控製字符
什麼是控製字符
控製字符(Control Character),或者說非打印字符,出現於特定的信息文本中,表示某一控制功能的字符,如控制符:LF(換行)、CR(回車)、FF(換頁)、 DEL(刪除)、BS(退格)、BEL(振鈴)等;通訊專用字符:SOH(文頭)、EOT(文尾)、ACK(確認)等。
具體控製字符一共有下面兩個集合:
- 七位ASCII定義了33個代碼作為控製字符,它們是0到31、以及127,(位於0x00-0x1F及0x7F)。
- 兼容的八位ISO/IEC 8859-1加上了從ISO/IEC 6429定義的從128到159的32個代碼,位於0x80-0x9F。
PHP 中如何移除控製字符
在我們平時程序當中,如果字符串中出現了控製字符,json_decode
和simplexml_load_string
這些函數就會失敗,所以最好就是去掉,所以我寫了一個移除控製字符的PHP函數:
function wpjam_strip_control_characters($str){
return preg_replace('/[\x00-\x1F\x7F-\x9F]/u', '', $str);
}