我正在尝试学习一些关于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.';
对我有任何帮助吗?感谢。
答案 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]
)。