PHP: Добавить уникальный идентификатор + идентификатор заказа для каждого слова, начинающегося с @ - PullRequest
0 голосов
/ 26 августа 2010

Мне нужно добавить идентификатор заказа + уникальный идентификатор для каждого слова, начинающегося с @.


Например, у меня есть 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>.

1 Ответ

2 голосов
/ 26 августа 2010

Вы можете использовать флаг /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>.
...