PHP:str_replace如何用一个变量号替换一些字符串?

时间:2014-01-28 02:55:42

标签: php string replace

我正在尝试学习一些关于PHP的东西,我不知道该怎么做,就像这样:

我有一个字符串:

$text = 'This is your post number [postnumb], This is [postnumb], And this is your post number [postnumb].';

使用PHP我想将字符串[postnumb]更改为post:

$textchanged = 'This is your post number 1, This is your post number 2, This is your post number 3.';

对我有任何帮助吗?感谢。

2 个答案:

答案 0 :(得分:2)

使用preg_replace(),您可以使用第4个参数将替换限制为第一次出现。将它与一个循环结合起来,直到没有剩余的东西为止,你可以实现你所追求的目标:

$text = 'This is your post number [postnumb], This is [postnumb], And this is your post number [postnumb].';

$i = 0;
while(true)
{
    $prev = $text;
    $text = preg_replace('/\[postnumb\]/', ++$i, $text, 1);

    if($prev === $text)
    {
        // There were no changes, exit the loop.
        break;
    }
}

echo $text; // This is your post number 1, This is 2, And this is your post number 3.

答案 1 :(得分:0)

str_replace("[postnumb]", 1, $text);

您无法使用[postnumb]str_replace()设置不同的数字(除非您手动为子字符串执行此操作)。

preg_replace()应该针对该案例提供帮助,或针对不同的数字使用不同的标记(例如[postnumb2][postnumb])。