| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > preg_replace не берет строку |
| Автор: mikla 1.11.2007, 23:43 | ||||||||
| дело вот в чем. нужно заменить в строке все что находиться между тегами [loop] [/loop] 1. этот код
выведет мне
2. а этот код отработает нормально
и выведет
1. почему так происходит ? 2. как сделать так чтобы preg_replace "съел" строку, к-рая задана в 1м примере ? |
| Автор: mikla 2.11.2007, 08:03 |
| Fally, Спасибо большое. |
| Автор: mikla 2.11.2007, 20:03 | ||||
| еще одна проблема с регуляркой. нужно опять же взять то что между тегами [loop] [/loop] и сложить в массив. делаю так
вижу
что я опять не так делаю ? |
| Автор: webevt 2.11.2007, 22:16 | ||
mikla,
Вопросик после * поставить нужно |
| Автор: mikla 2.11.2007, 22:23 | ||
| webevt хм. у меня не работает ваш вариант. я сделал вот так :
ну и получается что в $split_arr[0][i]лежить все что надо |
| Автор: flashaa 5.11.2007, 12:17 | ||
| При работе с preg_split в регулярке задается именно разделитель массива, а в начале темки туда помещали выражения для элемента.. Да ещё с маской, которая тут никак не обрабатывается. Через preg_split тоже можно вот так вот:
Только минус будет в том, что в массив совпадений попадут фрагменты строки перед первым [loop] и после последнего [/loop], т.е. 2 лишних эл-та. А вообще это кривое решение, preg_match_all в предыдущем сообщение - самое верное. |