2010-08-26 157 views
0

開頭我需要爲每個單詞添加一個訂單ID +唯一ID,以@開頭。PHP:爲每個單詞添加唯一ID +訂單ID以@


比如我有一個string這樣的:

Just @do @it and @do @it.

我想preg_replace#(\@)+([^\s]+)#i這樣:

Just <div id="1+Unique ID">@do</div> <div id="2+Unique ID">@it</div> and <div id="3+Unique ID">@do</div> <div id="4+Unique ID">@it</div>.

回答

2

可以使用/e標誌preg_replace爲每次更換運行代碼:

$string = 'Just @do @it and @do @it.'; 
$id = 0; 

echo preg_replace('/@\w+/e', '"<div id=\"".++$id."\">\\0</div>"', $string); 

輸出:

Just <div id="1">@do</div> <div id="2">@it</div> and <div id="3">@do</div> <div id="4">@it</div>. 
+0

嘿!非常感謝它的工作!我不相信你做到了!我正在尋找像這樣的東西數週!但是,你能告訴我應該如何將它與'variable'一起使用,所以'preg_replace('/ @ \ w +/e',$ replace,$ string);' – Adam 2010-08-26 04:19:22

+0

將'$ replace'設置爲上面的確切字符串。請確保使用與我寫的相同的單引號和雙引號:'$ replace =''

\\0
'';' – 2010-08-26 04:21:29

+0

哇感謝您的快速響應:D讓我試試吧 – Adam 2010-08-26 04:22:31