sprite123
16.09.2014 - 16:43
Подскажите есть текст мне надо в ней заменить 1 символ на нумерацию от 1 и дальше
echo $p; = возвращаяет testdsf^gdfofgfd^dsfsdfds^
мне надо что бы вернуло:
echo $p; = возвращаяет testdsf1gdfofgfd2dsfsdfds3
DedMorozzz
16.09.2014 - 16:46
показывай как ты делал. Будем подправлять
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Можно найти порядковые номера этих символов в строке с помощью preg_match_all
с ключём PREG_OFFSET_CAPTURE
потом в цикле с помощью substr_replace заменить в тексте символы с такими порядковыми номерами на нужные цифры, например на (ключ из массива preg_match_all + 1), получиться testdsf1gdfofgfd2dsfsdfds3.
Мне вот интересно, можно ли это как нибудь регуляркой сделать сразу, то есть поиск символа и сразу же его замена на значение типа счётчик. без цикла.
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
$text = 't^estd^sf^gdf^ofgf^d^dsfs^df^ds^';
preg_match_all('!\^!i',$text, $tags,PREG_OFFSET_CAPTURE);
foreach ($tags[0] as $key => $row) {
$text = substr_replace ($text, $key+1, $row[1],1);
}
echo $text;
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
DedMorozzz
16.09.2014 - 18:05
я бы делал с помощью preg_replace_callback. она нужна именно для таких случаев
Ибо ты делаешь лишнии циклы. А надо каждое вхождене тут же обработать. Так эффективнее
Но тут надо смотреть, что сделал ТС
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.