ホームページ > バックエンド開発 > PHPの問題 > php preg_replace が失敗した場合はどうすればよいですか?

php preg_replace が失敗した場合はどうすればよいですか?

藏色散人
リリース: 2023-03-08 13:20:01
オリジナル
2241 人が閲覧しました

php preg_replace 置換失敗の解決策: まず、対応する PHP コード ファイルを開き、置換できない文字の ASCII コードを出力して置換します。

php preg_replace が失敗した場合はどうすればよいですか?

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

php preg_replace space を使用することはできません。問題を置き換えました

私を騙す小さなバグ。テキスト (UTF-8 でエンコード) を読み取り、スペースを置換したいのですが、str_replace(" "..) も preg_replace("/\s/"..) も機能しません。

 <?php
 
 $str = &#39;<p>    你好<p>&#39;;
 $str = preg_replace(&#39;/\s/is&#39;,&#39;&#39;,$c);
 $str = str_replace(" ", "a", $str); 
 var_dump($str); //不起作用
ログイン後にコピー

仕方がない、 ord() の後に置換不可能なスペースが表示されている この utf-8 スペースは特別です。 ASCII 194 160が出ました。

 <?php
 
 $str = &#39;<p>    你好<p>&#39;;
 $str = str_replace(chr(194) . chr(160), "a", $str);  // 解决方法1
 $str = preg_replace(&#39;/\xC2\xA0/is&#39;, "a", $str);  // 解决方法2
 var_dump($str); //ok
ログイン後にコピー

問題の根本は、UTF-8 エンコードに特殊文字があり、そのエンコードが「0xC2 0xA0」(194 160) であることです。文字に変換すると通常の半角スペース(ASCII 0x20)と同じスペースとして表示されますが、幅が圧縮されない点だけが異なるため、Webページのレイアウトなどによく使われます。最初の行のインデントとして).種類)。 GB2312 や Unicode などの他のエンコード方式には、そのような文字はありません。

置換できないさまざまな文字を整理します。

chr(194).chr(160) 变现为空格
chr(227).chr(128) 变现为空格
chr(226).chr(128).chr(172).chr(226).chr(128).chr(172).chr(30) 变现为空
ログイン後にコピー

要約: 置換できない文字については、いつでも印刷できます。 ASCIIコードに置き換えてください。

[推奨学習: 「PHP ビデオ チュートリアル 」]

以上がphp preg_replace が失敗した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート