Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Выборка текста между двумя символами в многократном повторении
2.Нужно каким-то образом выбрать все элементы, которые находятся в фигурных скобках, в массив.
У меня получилось выбрать через одно место(поп..у), т.е. сначало выберает первый элемент, все остальные остаются не выбранными. Потом первый элемент не выбранный, второй выбранный, последующие не выбранные и т.д.
Задача, простая, но мозги не могут собраться. Сложность именно в цикле поиска всех элементов сразу.
За ранее спасибо!
teddy
Отправлено: 16 Ноября, 2014 - 14:42:41
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
(Добавление)
Теперь сижу голову ломаю над другим вопросом.
К примеру, в том же тексте все элементы имеют вид "{1|2}".
Нужно получить 2 текста с заменой на первое число элемента и на 2е по всем элементам.
Т.е. рез.:
Покинул форум
Сообщений всего: 96
Дата рег-ции: Нояб. 2011
Помог: 0 раз(а)
Ошибку 500 выдает браузер. ПХП на хосте 5.2..., поэтому ф-ция preg_replace_callback должна работать. ПХП ошибки вывести в браузере не получается, хотя в самам файле включил вывод. Что же не так в тексте?
$val - это каждый элемент после поиска ф-ции? Т.е. я его не задаю, задаю только $text.
teddy
Отправлено: 16 Ноября, 2014 - 16:43:58
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Может где то синтаксическая ошибка или ещё чего там?
Смотрите error log на сервере. Думаю будет ясно в чем причина ошибки.
Sankaboy пишет:
$val - это каждый элемент после поиска ф-ции?
Да. Каждое совпадение будет автоматически передано в колбек как параметр. (Добавление)
Sankaboy пишет:
ПХП на хосте 5.2..
А... ну да. Анонимные функции ведь в 5.3 появились.
Функцию оформите по старинке типа function myMatches($val) и её название передайте как строку в качестве параметра вместо анонимной функции
Покинул форум
Сообщений всего: 96
Дата рег-ции: Нояб. 2011
Помог: 0 раз(а)
Точно 5.2 - это старая. Она стоит у меня только потому, что движки матерятся на новые версии пхп. Типа нужно старые ф-ции заменить на новые, а это все мозготр*х.
Погуглил и увидел, что 2й параметр в ф-ции preg_replace_callback задается в скобках, а именно название ф-ции. Для меня это дикость. Да и саму preg_replace_callback - никогда не учил.
Результат выдает пхп текст, но выдает сам стартовый текст, т.е. без изменений.
Что же не так?
teddy
Отправлено: 16 Ноября, 2014 - 19:01:17
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Sankaboy пишет:
но выдает сам стартовый текст
Может я неверно понял задачу. Давайте заново.
Есть текст, в котором имеются идентичные вставки вида {1|2}.
Нужно первые две вставки заменить на левую часть этой вставки {1|2} (т.е на единицу в данном случае), а все остальные вставки заменить на правую часть (двойку), я правильно понимаю? Если да, то должно быть все нормально.
Sankaboy
Отправлено: 16 Ноября, 2014 - 22:43:25
Гость
Покинул форум
Сообщений всего: 96
Дата рег-ции: Нояб. 2011
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.