<>and preg_match

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
<>and preg_match

Здраствуйте
Почемуто preg_match начинает колбисить не по детски при
$text = '<!-- Старт text find-->Текст<!-- End text find-->';
preg_match("/(<!-- Старт text find-->)(.+)*(<!-- End text find-->)/", $text, $arrray);
Происходит все в винде. Пхп начинает колбасить (на все 100% PID процесорного времени). При єтом пхп в процессах "убить" нельзя.
Где сдесь грабли?
Спасибо
 

Сергей123

Новичок
А вот так не устроит?
PHP:
preg_match("/(<!-- Старт text find-->)([^<]*)(<!-- End text find-->)/", $text);
Note: после --> ПРОБЕЛ добавляет форум.
 

Falc

Новичок
Originally posted by Бресь Сергей
А вот если в --> )(.+)*(<!-- убрать пробел - тот же эффект
еще один пробел убрать надо тогда может и true выдаст :)

А тормозит ХЗ почему возможно дело в винде
 

Falc

Новичок
Originally posted by Бресь Сергей
А вот так не устроит?
PHP:
preg_match("/(<!-- Старт text find-->)([^<]*)(<!-- End text find-->)/", $text);
Note: после --> ПРОБЕЛ добавляет форум.
А если в тексте треугольная скобка?
 

Falc

Новичок
Попробуй так:
PHP:
preg_match("/(<!-- Старт text find-->)(.*)(<!-- End text find-->)/", $text, $arrray);
 

Falc

Новичок
Originally posted by Бресь Сергей
В HTML не должно их быть + его рег уж точно этого не учитывал.
В HTML ле полно треугольных скобок и его рег должен поидее их проглатывть.
 

nuto

Guest
falc все написал
под виндой и никс работает
PHP:
if(preg_match("/(<!-- Старт text find-->)(.+)(<!-- End text find-->)/",$text,$array)) echo $array[0];
update: пробелы перед ) добавляет форум
 

Falc

Новичок
Originally posted by nuto
falc все написал
под виндой и никс работает
PHP:
if(preg_match("/(<!-- Старт text find-->)(.+)(<!-- End text find-->)/",$text,$array)) echo $array[0];
update: пробелы перед ) добавляет форум
Все-таки правельнее поставить * а не +

Но если у нас таких блоков на странице может быть несколько то такой рег не сработает :)
 

Falc

Новичок
Вообще если нужен рег который будет вытаскивать нужные куски со страниц юзай такой:
PHP:
preg_match( "~<!-- Старт text find-->(.*?)<!-- End text find-->~s", $text, $arrray );
 

nuto

Guest
или бъем парсинг в массив блоками <!-- ... -->бла-бла<!-- ... -->, и дальше обрабатываем блок за блоком первым регом Фалька
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
винда долбанная
перегрузился, всё ок
Спасибо!


Правда есть ещё один вопрос
нужно ли делать addslashes($text) перед preg_match
(magic_quotes - off)


Ещё раз спасибо
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
как поступить если в тексте могут встречаються абзацы как в начале, так и в конце текста (не прибегая к модификатру /s)

верна ли конструкция
preg_match("/(<!-- Старт text find-->)((.)*(\r\n)*)*(<!-- End text find-->)/", $text);

Спасибо
 

Falc

Новичок
Originally posted by Mr_Max
как поступить если в тексте могут встречаються абзацы как в начале, так и в конце текста (не прибегая к модификатру /s)
А оно тебе надо?
Можно конечно ездить и на велосипеде с квадратными колесами:)
 
Сверху