0

私はこの関数をしばらく使用していますが、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_rplcwordpress の 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は同じままです。

エラーや警告も表示されません。

4

1 に答える 1

2

これは私のために働く:

<?php

$e2p_words = array("c*sh", "v*agra", "s3x");
$e2p_words_2b = array("cash", "viagra", "sex");

$e2p_message = "Get a v*agra, or you'll have to pay c*sh for some real s3x.";

$e2p_message = str_replace($e2p_words, $e2p_words_2b, $e2p_message);

echo $e2p_message;

?>

出力:

Get a viagra, or you'll have to pay cash for some real sex.
于 2012-04-25T12:17:19.143 に答える