php часть строки



Автор Gram задал вопрос в разделе Другие языки и технологии

PHP замена части строки и получил лучший ответ

Ответ от Капитан Гугл[гуру]
srand; - бессмысленное выражение. Если хочешь вызвать функцию srand, то надо ставить скобки: srand();. И вызывать ее надо один раз в начале программы.
Этот цикл не может вызывать рекурсию по определению рекурсии. Тут нет рекурсивных функций. Может, что-то другое вызывает? А если рекурсию - то что в этом страшного? Или ты просто используешь умное слово, не зная, что оно означает?
А вообще - бредовое выражение от начала и до конца. Зачем тебе substr_replace, если ты пропускаешь значение, которое нужно заменить? И где ты сохраняешь результат замены?
Не самый лучший вариант, но тебе так будет понятнее:
srand();
while (stripos($message, "[dice]") !== false)
$message=substr_replace($message, rand(1,6), stripos($message, "[dice]"), 6);
не?

Ответ от David[гуру]
Задача заставила меня немного напрячься. Заинтриговала.. .
Вот решение:
$message = "Today is [dice] and do some [dice] and it would be [dice]";
$find = '[dice]';
// Разделить стринг по делиметеру в массив
$array = explode($find, $message);
// Начать итерацию изменяя указатель ключа
foreach($array as &$key){
$key = $key . rand(1, 7);
}
// Удалить последний элемент
array_pop($array);
// Вернуть аррэй назад в стринг пустым делимитером
$message = join('', $array);
// Результат: Today is 7 and do some 4 and it would be 3
print $message;

Ответ от Lexx918[гуру]

$str = '123 [dice] 456 [dice] 789';
$str = preg_replace_callback('/[dice]/i', create_function('', 'return rand(1, 6);'), $str);
var_dump($str);

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: PHP замена части строки
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*