php preg_replace 置換失敗の解決策: まず、対応する PHP コード ファイルを開き、置換できない文字の ASCII コードを出力して置換します。
この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
php preg_replace space を使用することはできません。問題を置き換えました
私を騙す小さなバグ。テキスト (UTF-8 でエンコード) を読み取り、スペースを置換したいのですが、str_replace(" "..) も preg_replace("/\s/"..) も機能しません。
<?php $str = '<p> 你好<p>'; $str = preg_replace('/\s/is','',$c); $str = str_replace(" ", "a", $str); var_dump($str); //不起作用
仕方がない、 ord() の後に置換不可能なスペースが表示されている この utf-8 スペースは特別です。 ASCII 194 160が出ました。
<?php $str = '<p> 你好<p>'; $str = str_replace(chr(194) . chr(160), "a", $str); // 解决方法1 $str = preg_replace('/\xC2\xA0/is', "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 サイトの他の関連記事を参照してください。