使用PHP preg_replace替换一些具有不同值的文本

时间:2013-05-30 15:38:15

标签: php random preg-replace str-replace uniqueidentifier

我想知道如何使用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;

但它给了我这个结果:

任何帮助?

谢谢!

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

您可以测试"~http://www\.mysite\.com/\?uid\=([0-9]+)~si"它找到具有不同uid值的所有内容,您可以使用preg_replace_callback进行检查并替换它们