Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа preg_split(), не могу разбить строку 
:(
    Опции темы
G0rin
Дата 13.1.2011, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.4.2010

Репутация: нет
Всего: нет



возникла проблема, к примеру есть код 
Код

$str = "начало <!--block expire text--> конец";
$arr=preg_split("/\<\!\-\-block\sexpire .*\-\-\>$/", $str);
echo $arr[0];

я ожидаю что в $arr[0] будет "начало", но он выдает строку "начало конец" тоесть удаляет мою регулярку вместо разбития строки на части до и после выражения. Я ен правельно поинмаю работу preg_split?
PM MAIL   Вверх
enoff
Дата 13.1.2011, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 1
Всего: 13



зачем все эти экранирования?
Цитата(G0rin @  13.1.2011,  08:22 Найти цитируемый пост)
но он выдает строку "начало конец

исходный код посмотрите.
и посмотрите маны по регулярным выражениям.
PM MAIL ICQ Skype GTalk   Вверх
G0rin
Дата 13.1.2011, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.4.2010

Репутация: нет
Всего: нет



с экранированием да, можно и /<!--block\sexpire .*-->$/ но в целом я как понимаю это суть не меняет, работает в итоге также
PM MAIL   Вверх
enoff
Дата 13.1.2011, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 1
Всего: 13



G0rin, в данном случае работает так, как и должно, если посмотреть на регулярку.
знак доллара в конце обозначает конец строки, соответственно конец регулярки == символы "-->" за которомы следует конец строки.
данное рв не совпадает с приведенным текстом, поэтому при разбиении получается один элемент, который является всей строкой.
более того, .* - сожрет все, что можно, нужно инвертировать жадность. либо .*?, либо глобально - .* и модификатор U.
PM MAIL ICQ Skype GTalk   Вверх
G0rin
Дата 13.1.2011, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.4.2010

Репутация: нет
Всего: нет



enoff, спасибо, понятно теперь
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.