首頁  >  文章  >  後端開發  >  php怎麼去掉中文空格

php怎麼去掉中文空格

藏色散人
藏色散人原創
2021-07-17 10:30:172591瀏覽

php去掉中文空格的方法:1、使用正規“preg_replace('/^[(\xc2\xa0)|\s] /', '', $new['content']);”去掉中文空格;2、透過mb中的正規替換去掉中文空格。

php怎麼去掉中文空格

本文操作環境: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn