php去掉中文空格的方法:1、使用正規“preg_replace('/^[(\xc2\xa0)|\s] /', '', $new['content']);”去掉中文空格;2、透過mb中的正規替換去掉中文空格。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
php怎麼去掉中文空格?
去掉中文空格的PHP正規代碼
中文空格這裡面有好幾種:沒有簡單的解決問題的方式,例如半角全角空格,例如段落符都會顯示為空白的,然後讓人誤解它是空格,所以去掉空格之前一定要先確認自己的是不是空格,我下面分析一下這兩種的解決方法。
(1)/[\s| ] /這個就可以,注意|後面的跟的是全角空格
(2)mb中的正則替換也可以試試
另外注意使用Unicode的時候,加上正規表示式描述符u
但由於漢語中顯示為空格模樣的有很多個,比如說我下面碰到的這麼一個,它的unicode編碼為C2A0,使用下面的表達式就能解決問題。
$new['content'] = preg_replace('/^[(\xc2\xa0)|\s]+/', '', $new['content']);
這裡有個細節: \xc2a0本來是一個Unicode字符,但是不能匹配多個,只能替換一個,【這裡可能是因為字節的原因】後來突然找到這麼一種寫法,解決了問題,另外為了避免,中文空格和英文空格相混雜的情形,後面又加了個\s來清除。
其實在Unicode上的正規表示式確實不怎麼好用。
其他參考:
日常我們處理資料時常會產生額外的空格,如果你想進行諸如比較字串時,就會引致問題;同時也浪費額外的儲存空間。
如何除掉空格?也許你會先想到PHP內建函數trim()。沒錯,它處理字元的始末部分確實有效,但是,這種情況下它就辦不到了:將多個空格變為一個空格,將空格變為有序的規則的隊列等等…
於是,正規表示式就派上用場了。看看下面的程式碼:
$str = ” This line contains\tliberal \r\n use of whitespace.\n\n”; // 首先去掉头尾空格 $str = trim($str); // 接着去掉两个空格以上的 $str = preg_replace(’/\s(?=\s)/’, '', $str); // 最后将非空格替换为一个空格 $str = preg_replace(’/[\n\r\t]/’, ' ', $str);
使用上面的範例可以去掉所有多餘的空格。首先使用TRim()去頭尾空格,接著用preg_replace()去掉重複的空格。
當中的(?=)表示只符合後面的空格跟隨前面的空格的空格。
推薦學習:《PHP影片教學》
以上是php怎麼去掉中文空格的詳細內容。更多資訊請關注PHP中文網其他相關文章!