[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: preg_replace & rand()
Artte
Надо сделать замену каждого совпадения с шаблоном уникальным значением, но если использовать rand() - функция запоминает результат и все совпадения меняет на этот rand(). Как сделать каждый раз уникальную замену?



Спустя 8 часов, 53 минуты, 2 секунды (29.01.2010 - 09:57) vagrand написал(а):
А можно взглянуть на пример текста и на ваш код?

Спустя 13 часов, 53 минуты, 17 секунд (29.01.2010 - 23:50) Artte написал(а):
К примеру, нужно в html коде всем textarea задать рандомный id. Другие способы, через js, например, не годятся.
echo preg_replace("~<textarea~","<textarea id='".rand(0,99999).chr(rand(65, 90)).chr(rand(65, 90)).chr(rand(65, 90))."'",$html);

^замена проходит нормально, но везде одинаковый id получается.

Спустя 2 дня, 17 часов, 10 минут, 54 секунды (1.02.2010 - 17:01) Ulanych написал(а):
Можно попробовать сделать функцию, например:

function rand_id()
{
$rand_id = rand(0,99999).chr(rand(65, 90)).chr(rand(65, 90)).chr(rand(65, 90));
return $rand_id;
}
echo preg_replace("~<textarea~","<textarea id='".rand_id()."'",$html);

или что-то типа того, т.е. функция при каждом вызове будет генерить и возвращать некоторое случайное значение, а мы его уже будем подставлять. Сработает или тоже все значения будут одинаковые??

Спустя 2 часа, 26 минут, 33 секунды (1.02.2010 - 19:28) krasilich написал(а):
может с mt_rand () прокатит, или я ошибаюсь?

Спустя 1 день, 2 часа, 45 минут, 50 секунд (2.02.2010 - 22:14) Artte написал(а):
Не знаю, я сделал в цикле с лимитом в 1 замену. Ваши варианты тоже рассмотрю, спасибо.
Быстрый ответ:

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