ホームページ >バックエンド開発 >PHPの問題 >PHPで中国語のスペースを削除する方法

PHPで中国語のスペースを削除する方法

藏色散人
藏色散人オリジナル
2021-07-17 10:30:172618ブラウズ

PHP で中国語のスペースを削除する方法: 1. 正規表現 "preg_replace('/^[(\xc2\xa0)|\s] /', '', $new['content'] を使用します。 );" 中国語のスペースを削除する; 2. mb での定期的な置換によって中国語のスペースを削除します。

PHPで中国語のスペースを削除する方法

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

中国語スペースを削除する方法phpで?

中国語のスペースを削除するための PHP の通常のコード

中国語のスペースにはいくつかの種類があります。問題を解決する簡単な方法はありません。全角スペースと全角スペース、例えば段落の区切りが空白で表示されてしまうとスペースだと誤解されてしまいますので、スペースを削除する前に必ずスペースかどうかを確認する必要があります。以下の解決策。

(1)/[\s| ] /This will do. | の後には全角スペースが続くことに注意してください

(2) mb## で通常の置換を試すこともできます

# また、Unicode を使用する場合は、正規表現記述子 u

を追加することにも注意してください。ただし、中国語ではスペースとして表示されるスペースが多数あるため、たとえば、以下で遭遇したものは、その UnicodeエンコーディングはC2A0であり、次の式で問題を解くことができます。

$new['content'] = preg_replace('/^[(\xc2\xa0)|\s]+/', '', $new['content']);

ここに詳細があります: \xc2a0 はもともと Unicode 文字ですが、複数の文字と一致することはできず、1 つしか置き換えることができません [これはバイトの理由によるものかもしれません] 後になって、突然このような記述を見つけましたこれで問題は解決しましたが、中国語スペースと英語スペースの混同を避けるため、後から\sを追加してクリアしました。

実のところ、Unicode の正規表現はあまり使いやすいものではありません。

その他の参考情報:

毎日、データを処理するときに余分なスペースが生成されることがよくあります。文字列を比較する場合、問題が発生し、余分なストレージ スペースも無駄になります。

スペースを削除するにはどうすればよいですか?おそらく、最初に PHP 組み込み関数 Trim() を思い浮かべるでしょう。はい、文字の先頭と末尾を処理する場合には確かに効果的ですが、この場合はそれができません。複数のスペースを 1 つのスペースに変換したり、スペースを順序付けられた通常のキューに変換したりするなど...

そこで、正規表現が便利です。次のコードを見てください。

$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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。