2011-08-13 17 views
1

PHPを使用して、テキストを取り出して検索し、特定の単語をリストの別の単語に置き換えようとしています。PHPリストから単語をランダムな単語に置き換えますか?

このリスト内の任意の単語を見つけるために、テキストによる

検索: 、非常に美しい、ゴージャス、美しい、魅力的、

をアピールし、同じリスト (から別でこの言葉を置き換えるが、同じことを選択しませんワード)。

希望はこれが理にかなっています!

ありがとうございます。

+1

これで問題はどこにありますか? – miku

+0

商品ローテータを探しています – ArK

+0

watしようとしました、いくつかのサンプルコードを投稿 –

答えて

2

あなたはpreg_replace_callbackを使用することができます。

$random_string = '…'; 
$needle = array('pretty', 'beautiful', 'gorgeous', 'lovely', 'attractive', 'appealing'); 
$new_string = preg_replace_callback(
    array_map(
    function($v) { return '/'.preg_quote($v).'/'; }, // assuming $needle does not contain '/' 
    $needle), 
    function($matches) use($needle) { 
    do { 
     $new = $needle[rand(0, count($needle)-1)]; 
    while($new != $matches[0]) { 
    return $new; 
    }, 
    $random_string); 

あなた$needle配列が正規表現で特別な意味を持つ文字が含まれていない、我々は検索する前に、アレイの各項目にpreg_quoteを呼び出すことを確認します。

do{}while()ループを実行する代わりに、配列をコピーして一致する単語を削除することもできます(実際のデータにほとんど依存しません:コピーするアイテムはほとんどありません→コピーしないでください)

関連する問題