1

この関数str_replace()は最初のパラメーターとして配列を受け入れますが、見つかったテキストが置き換えられる 2 番目のパラメーターで使用する文字列を格納する方法がわかりません。たとえば、文字列を角かっこや引用符で囲むように書式設定したい場合などです。

これが例です。$array の単語が吐き出されたときに引用符を挿入するか、単語の大文字と小文字をすべて小文字から $array で設定された大文字に変更しようとしていたとします。

$array = array('Over','Dog','Quick');

$string = "The quick brown fox jumps over the lazy dog";

$string = explode(" ",$string);

foreach ($string as $word) {

    echo str_replace($array, "???", $word);

    echo " ";

}

それが返されThe ??? brown fox jumps ??? the lazy ???ます。これは正規表現の仕事かもしれませんが、フォーマットと置換の両方を処理する方法を理解できませんでした。ここで何かが欠けているように感じますが、私がグーグルで調べても、この件には触れていません。

4

1 に答える 1

2
$array = array('Over', 'Dog', 'Quick');

$string = "The quick brown fox jumps over the lazy dog";

echo str_ireplace($array, $array, $string);

実際の動作はこちら: http://viper-7.com/q7n7uw


たとえば、文字列を引用符で囲みたい場合は、次のようにします。

$array = array('Over', 'Dog', 'Quick');
$replacements = array();
foreach($array as $item) $replacements[] = '"' . $item . '"';

$string = "The quick brown fox jumps over the lazy dog";

echo str_ireplace($array, $replacements, $string);

こちらをご覧ください: http://viper-7.com/2afgL5


ただし、実際には、これは次の仕事ですpreg_replace

$search = array('Over','Dog','Quick');

foreach($search as &$item) $item = '~\b(' . $item . ')\b~i';

$string = "The quick brown fox jumps over the lazy dog";

echo preg_replace($search, '"$1"', $string);

こちらをご覧ください: http://viper-7.com/nAlqzX

于 2012-09-02T16:34:25.473 に答える