0

我想知道如何使用 preg_replace 将 php 字符串中的一些文本替换为不同的值。

例如 :

我想要这个结果:

我用过这段代码:

$string = 'http://www.mysite.com/?uid=123456<br/>
            http://www.mysite.com/?uid=123456<br/>
            http://www.mysite.com/?uid=123456';

$string = preg_replace(array("~123456~", "~123456~", "~123456~"), array("456789","789456","159753"), $string);

echo $string;

但它给了我这个结果:

有什么帮助吗?

谢谢 !

4

2 回答 2

2

尝试:

$string = 'http://www.mysite.com/?uid=123456<br/>
        http://www.mysite.com/?uid=123456<br/>
        http://www.mysite.com/?uid=123456';

$newString = preg_replace_callback('/([0-9]{6})/im', function($matches){ return rand(100000, 999999); }, $string);
于 2013-05-30T15:47:01.683 回答
1

你可以测试"~http://www\.mysite\.com/\?uid\=([0-9]+)~si"它找到所有不同的 uid值,你可以preg_replace_callback用来检查和替换它们

于 2013-05-30T15:41:55.510 回答