字符串替换不同的结果

时间:2016-06-15 10:21:38

标签: php preg-replace

$string = "[abc] my [efg] best [hij]";

首先[]改为Hi。
第二个[]改为你好。
第三[]改为世界。

整个字符串都是动态的。 (它总是显示不同的结果。) 示例:

$string = "[iii] my my [ooo] yes to all [eee]";
$string = "[abc] lovely [efg] [hij]";
$string = "[abc] my [efg] best of the the the the [hij]. That Right.";

我可以尝试使用此代码,但它会将所有代码替换为相同的值。

$string = preg_replace('/\[(.*?)\]/',"Hi",$string );

一旦替换将成为Hi Hello World。 str_replace字符串可以吗?

3 个答案:

答案 0 :(得分:2)

这是一种方法:

$string = "[abc] my [efg] best [hij]"; 
$repl = array('Hi', 'Hello', 'World');
foreach($repl as $word) {
    $string = preg_replace('/\[[^\]]+\]/', $word, $string, 1);
}
echo $string,"\n";

<强>输出:

Hi my Hello best World

答案 1 :(得分:0)

您可以使用函数explode

<?php
    $string = "[abc] my [efg] best [hij]";         

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

    $ar[0] = 'Hi';                       
    $ar[2] = 'Hello';                       
    $ar[4] = 'World';

    echo implode(' ', $ar); //Hi my Hello best World

答案 2 :(得分:0)

你希望整个文本改变,所以这里不需要条件..

$string = "[abc] [efg] [hij]";
$change = "Hi Hello World";
echo str_replace($string,$change,$string);