私はこの関数をしばらく使用していますが、PHP のstr_replace
関数でこの奇妙な問題が発生したのはこれが初めてです。これが私のコードです...
$e2p_perline = explode(',', $e2p_wrd_rplc);
$e2p_words = array();
$e2p_words_2b = array();
$e2p_loopcounter = 0;
foreach($e2p_perline as $line){
$e2p_line_words = explode('-', $line);
$e2p_words[$e2p_loopcounter] = $e2p_line_words[0];
$e2p_words_2b[$e2p_loopcounter] = $e2p_line_words[1];
$e2p_loopcounter++;
}
$e2p_message = str_replace($e2p_words, $e2p_words_2b, $e2p_message);
$e2p_wrd_rplc
wordpress の get_option() 関数を使用してデータベースからロードされた文字列です。この形式の文字列データc*sh-cash, v*gra-viagra, s3x-sex,....
$e2p_words
は、置換する$e2p_words_2b
単語で埋められた配列であり、置換単語で埋められた配列です。
私たちが持っているとしましょう
e2p_words
は (c*sh、v*agra、s3x)
e2p_words_2b
は (現金、バイアグラ、セックス)
これを実行すると、最初の単語だけc*sh
が に置き換えられcash
ます。の残りのe2p_words
オカレンスe2p_message
は同じままです。
エラーや警告も表示されません。