PHP替换字符串

3
$string = 'http://site.com/category/1/news/2134/'; // '1' is dynamic

我该如何将1更改为任意想要的数字?

无法调用字符串的部分,它只是一个类似文本的变量。

可以通过一些真正的正则表达式完成。


1
请更详细地定义问题。数字是否总是以“category”为前缀?它是否总是路径的第二个成员? - Pekka
3个回答

2
$array = explode('/',$string);
$array[4] = '666';
$string = implode('/',$array);

[编辑] 为什么有人对这种方法有问题?


这对于任何字符串处理任务来说都相当脆弱。如果输入不规范,它甚至无法以令人信服的方式中断。 - Gian

2
没有更多的信息,我的猜测是:
<?php
$string = 'http://site.com/category/' . $yourNumberHere . '/news/2134/';
?>

2
$string = preg_replace('~(?<=category/)[0-9]+(?=/news)~', '56', $string);

这将数字替换为56。

这种方法使用具有断言的正则表达式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接