1
file_get_contents($file)
で文字列を取得しました。PHP preg_match/replaceがfile_get_contentsの後に文字「ndash」で機能しない
" - "( "マイナス"ではなく、HTML –
)をPHPのpreg_replace関数で置き換えることができないのはなぜですか? preg_matchも機能しません。
$file
の出力は "blah - blah"です。
$str = file_get_contents($file); $str = preg_replace('/–/', 'test', $str); echo $str;
blah test blah
を返すが、blah – blah
を返す必要があります。
ホエイはそれで、どうしたら代わりにndashを置き換えることができますか?
ありがとうございました!
試行 ' '/ \ P {}のPd/u''最初。それがうまくいかない場合、シンボルがエンティティとして文字列に存在し、シンボルをエンティティに変換する前に 'preg_replace'を実行する必要があるか、または置換する前に' html_entity_decode'を使用する必要があります。例えば。 'preg_replace( '/ - /'、 'test'、html_entity_decode($ str))' –
私はまったく問題はありません。おそらく、preg関数がマルチバイトモードで動作するようにオーバーロードしていない可能性があります。 – arkascha
私はあなたのコードをオンラインのPHPエディタを使って試してみましたが、うまくいきましたhttp://sandbox.onlinephpfunctions.com/code/7e5bbced117493fc6a9282444197360a1ae75dde – Hearner