我想知道如何使用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;
但它给了我这个结果:
任何帮助?
谢谢!
答案 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
进行检查并替换它们