0

わかりましたので、この構文についてはわかりません。ロジックは自明だと思いますが、 preg_replace が機能するかどうか、または最終結果を得るためにループが必要かどうかはわかりません。

$string = $randomizer->fecthRandomPhrase($cfg['seo']['meta']['descriptions']['single'], 3, $_SERVER['REQUEST_URI']);

このような文字列を返します

Lorem ipsum dolor sit amet,[住所1], [住所2], [郵便番号]. consectetur adipiscing elit. Mauris id dui sem, eget laoreet tellus. Vivamus lacinia vestibulum odio a lobortis - [地域]

次に、変更したい部分の文字列を検索します。

$find = array('[address1]','[address2]','[postcode]','[region]');

次に、これらの変数に格納されている情報を取得し、配列に配置します。

$replace = array($ADDRESS1,$ADDRESS2,$POSTCODE,$region);

フレーズを返す前に、 preg_replace を適用して、保存した情報を交換します

$phrase = preg_replace($find,$replace,$string);

各変数の読み取りを許可し、置換が機能するようにするには、配列 $replace をループする必要がありますか、それとも間違った関数を完全に使用していますか?

4

3 に答える 3

0

strtrも便利です。

次の状況では、期待通りにしかstrtr機能しません。

$text = 'SonyEricsson is based in British, but Sony is based in Japan';

str_replace

コード:

$search  = array(
    'SonyEricsson',
    'Sony',
);
$replace = array(
    '<a href="http://www.SonyEricsson.com">SonyEricsson</a>',
    '<a href="http://www.Sony.com">Sony</a>',
);
echo str_replace($search,$replace,$text);

結果:

<a href="http://www.<a href="http://www.Sony.com">Sony</a>Ericsson.com"><a href="http://www.Sony.com">Sony</a>Ericsson</a> is based in British, but <a href="http://www.Sony.com">Sony</a> is based in Japan

ストレッチ

コード:

$replace_pairs = array(
    'SonyEricsson' => '<a href="http://www.SonyEricsson.com">SonyEricsson</a>',
    'Sony'         => '<a href="http://www.Sony.com">Sony</a>',
);
echo strtr($text,$replace_pairs);

結果:

<a href="http://www.SonyeEricsson.com">SonyEricsson</a> is based in British, but <a href="http://www.Sony.com">Sony</a> is based in Japan
于 2013-05-14T16:44:29.533 に答える