[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заменить символ в строке на нумерацию
sprite123
Подскажите есть текст мне надо в ней заменить 1 символ на нумерацию от 1 и дальше

echo $p; = возвращаяет testdsf^gdfofgfd^dsfsdfds^

мне надо что бы вернуло:
echo $p; = возвращаяет testdsf1gdfofgfd2dsfsdfds3
DedMorozzz
показывай как ты делал. Будем подправлять

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Arh
Можно найти порядковые номера этих символов в строке с помощью preg_match_all
с ключём PREG_OFFSET_CAPTURE
потом в цикле с помощью substr_replace заменить в тексте символы с такими порядковыми номерами на нужные цифры, например на (ключ из массива preg_match_all + 1), получиться testdsf1gdfofgfd2dsfsdfds3.

Мне вот интересно, можно ли это как нибудь регуляркой сделать сразу, то есть поиск символа и сразу же его замена на значение типа счётчик. без цикла.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
$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
я бы делал с помощью preg_replace_callback. она нужна именно для таких случаев
Ибо ты делаешь лишнии циклы. А надо каждое вхождене тут же обработать. Так эффективнее
Но тут надо смотреть, что сделал ТС

_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.