2010-08-26 117 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