2

文字列から置き換える必要のある単語の配列があります。それを呼び出しましょう$my_replacements$my_stringにこれらの値の一部を含めることができる文字列もあります。これをと呼びましょう。

今私はこれを持っています:

foreach ($my_replacements as $replacement) {
    $replaced_value = preg_replace("/(^|[\n\r\f\t \.\,])" . $replacement . "([\n\r\f\t \.\,]|$)/iu", '', $my_string);
    if($replaced_value !== $my_string) {
       break;
    }
}

そして、最初の交換でforeachを終了したい場合、これは良かったです。ただし、文字列に置き換えられる値が1つ以上含まれている場合は、機能しません。preg_replaceを使用してこれらの単語を検索し、それらをすべて置き換えるにはどうすればよいですか?そして、交換が行われたかどうかを知ることが重要です。

4

2 に答える 2

4

インデックス付き配列は。で使用できますpreg_replace()

<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[0] = 'slow';
$replacements[1] = 'black';
$replacements[2] = 'bear';
echo preg_replace($patterns, $replacements, $string);
?>

上記の例では、次のように出力されます。

The slow black bear jumped over the lazy dog.
于 2012-11-29T09:33:43.353 に答える
2
$word              = array("test","test1");
$search_string     = "(".implode("|",$word).")";
$value             = preg_replace("/$search_string\s+\S+)/i","$1",$text);

これを試して..

于 2012-11-29T09:45:18.940 に答える