好的,所以我不确定我的语法在这一个,我认为逻辑是不言自明的,但我不确定preg_replace是否会起作用,或者是否需要一个循环来获得最终结果。
$string = $randomizer->fecthRandomPhrase($cfg['seo']['meta']['descriptions']['single'], 3, $_SERVER['REQUEST_URI']);
返回如下字符串
Lorem ipsum dolor sit amet,[address1], [address2], [postcode]。奉献奉献的精英。毛里斯将会看到,他将会看到,他将会告诉我们。前庭裂唇虫-[区域]
然后在字符串中搜索我想要更改的部分;
$find = array('[address1]','[address2]','[postcode]','[region]');
然后提取存储在这些变量中的信息,并将它们放入数组中;
$replace = array($ADDRESS1,$ADDRESS2,$POSTCODE,$region);
在返回短语之前,我应用preg_replace来交换我存储的信息
$phrase = preg_replace($find,$replace,$string);
我是否需要循环数组$replace以允许读取每个变量并使替换工作,或者我是否完全使用了错误的函数?
str_replace()
可以将数组作为它的前两个参数,您可能需要考虑这样做。否则,您需要为$find
形成一个适当的正则表达式,以便只调用preg_replace()
一次,而您目前没有这样做。
用法:
$phrase = str_replace( $find, $replace, $string);
现在$phrase
应该包含您想要的输出
像这样使用PHP的str_replace函数
str_replace(array($your_replacement_array), array($your_replace_array), $string);
所以你想要的是这个
str_replace(array('[address1]','[address2]','[postcode]',['region']), array($ADDRESS1,$ADDRESS2,$POSTCODE,$region), $string);
strtr
也很有用。
在下列情况下,只有strtr
可以正常工作。
$text = 'SonyEricsson is based in British, but Sony is based in Japan';
<标题> 大小写不敏感代码:$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
<标题> strtr h1> $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
标题>标题>