2013-05-30 29 views
0

我想知道如何使用preg_replace將php字符串中的一些文本替換爲不同的值。用PHP替換一些不同值的文本preg_replace

例如:

我想這樣的結果:

我已經使用這個代碼:

$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

你是如何在你想要的結果獲得UID號?他們看起來隨機? –

回答

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); 
+0

它的工作原理,謝謝:) – aimadnet

+0

@aimadnet,Upvote或接受答案? :) –

1

可以測試"~http://www\.mysite\.com/\?uid\=([0-9]+)~si"它都具有不同的uid價值發現,你可以使用preg_replace_callback進行檢查和更換它們

+0

感謝您的幫助,它的工作原理:) – aimadnet