2012-04-25 8 views
0

私はこの機能をしばらく使っていますが、これはPHPのstr_replace関数でこの奇妙な問題を抱えています。ここに私のコードがある...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は、ワードプレスのget_option()関数を使用して、データベースからロードされた文字列です。この形式の文字列データc*sh-cash, v*gra-viagra, s3x-sex,....

$e2p_wordsは、置き換えられる単語が入っている配列であり、$e2p_words_2bは置換単語で埋められた配列です。私はこれを実行すると

我々は

e2p_wordsは(C *とのSH、V *アグラ、S3X)

e2p_words_2bであるとしますが今(現金、バイアグラ、性別)

あり、唯一の最初の単語c*shcashに置き換えられます。 e2p_messageにあるe2p_wordsの残りの部分は同じままです。

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

+0

をあなたは、私が余分なビットを追加するために、元の記事を編集した – scibuff

+0

を実行している、関連するコードを投稿してください配列がデータを取得する方法を示すコード – Atif

答えて

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. 
+0

はいこのプログラムは完全に実行されます –

+0

はい、それはそのように動作しますが、私はそれらの配列から値を取得していますmysqlデータベース。私はそれらの値が配列に正しく読み込まれていない可能性があると思ったので、 'print_r'を使いました。 – Atif

+0

@Lafanterあなたの最初の質問を編集し、追加することができます:1)あなたの値を取得する方法、2)あなたの値の配列? –

関連する問題