使用PHP preg_Replace用不同的值替换某些文本

使用PHP preg_Replace用不同的值替换某些文本,php,random,preg-replace,str-replace,uniqueidentifier,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

我想知道如何使用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;
$string='1!'http://www.mysite.com/?uid=123456
http://www.mysite.com/?uid=123456
http://www.mysite.com/?uid=123456'; $string=preg_replace(数组(“~123456~”、“~123456~”、“~123456~”),数组(“456789”、“789456”、“159753”),$string); echo$字符串;
但它给了我这个结果:

有什么帮助吗

谢谢

您可以测试
”~http://www\.mysite\.com/\?uid\=([0-9]+)~si“
它可以找到所有具有不同
uid
值的对象,您可以使用
preg\u replace\u回调来检查和替换它们

您可以测试
”~http://www\.mysite\.com/\?uid\=([0-9]+)~si”
它可以找到所有具有不同
uid
值的对象,您可以使用
preg\u replace\u callback
检查并替换它们

尝试:

$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);
$string='1!'http://www.mysite.com/?uid=123456
http://www.mysite.com/?uid=123456
http://www.mysite.com/?uid=123456'; $newString=preg_replace_callback('/([0-9]{6})/im',函数($matches){return rand(100000,999999);},$string);
试试:

$string='1!'http://www.mysite.com/?uid=123456
http://www.mysite.com/?uid=123456
http://www.mysite.com/?uid=123456'; $newString=preg_replace_callback('/([0-9]{6})/im',函数($matches){return rand(100000,999999);},$string);
您是如何获得所需结果中的uid编号的?它们看起来是随机的?你是如何得到你想要的结果中的uid号的?它们看起来是随机的?