опять preg_replace

Name

Новичок
опять preg_replace

Загружаю файл в переменную
в файле есть строчки
<!--skip-->
все что угодно
<!--/skip-->
Код:
Пытаюсь вырезать $in_box = preg_replace("/\<\!--skip--\>(.*)\<\!\\/--skip--\>/","",$in_box);
Ничего не вырезает. Что не так.

preg_replace рабочий, вот так работает
$in_box = "<!--skip-->3212lklasdl<>?^77809#$@;lklalkd;a132132<!/--skip-->888888888888888888";
$in_box = preg_replace("/\<\!--skip--\>(.*)\<\!\\/--skip--\>/","",$in_box);
echo $in_box;
 

.des.

Поставил пиво кому надо ;-)
А почему собственно такие сложности?
$in_box = preg_replace("/\<\!--skip--\>.+\<\!--\/skip--\>/","",$in_box);
 

jeka!

Просто Member
А нафиг перед < ставить \
Это по моему не мета символ???
 

jeka!

Просто Member
Ладно, проехали, ломает юзать эту фичу, потом проверю...
 

Name

Новичок
.
А почему собственно такие сложности?
$in_box = preg_replace("/\<\!--skip--\>.+\<\!--\/skip--\>/","",$in_box);
Не работает, мой вариант тоже рабочий
При проверке как я уже писал работает,
а если загружаю файл в переменную через ob_start();
потом пытаюсь вырезать не прокатывает, не вырезает.
 

.des.

Поставил пиво кому надо ;-)
Name по моему ты о модификаторе /s забываешь
или показывай как ты там читаешь файл..
 

jeka!

Просто Member
Блин, лично я всегда делаю вот так:
PHP:
$out = preg_replace("!^(.*?)<blockquote>(.*?)</blockquote>(.*?)$!si","\\2", $in);
И не ставлю всякие фичи... типа \
Поставь модификатор m
чтоб искал по всему тексту, и всё будет работать...
 

jeka!

Просто Member
Этот рег дёргает новости с чужого сайта, и прекрасно работает.
 

.des.

Поставил пиво кому надо ;-)
а что темой является дергание новостей с чужих сайтов? вообще брать чужое не хорошо! а во вторых внимательно условие прочитай. Твой рег делает прямо противоположное тому что требуется :)
 

jeka!

Просто Member
Это я пример привёл, а вот так не останется ничего:
PHP:
$out = preg_replace("!^(.*?)<!--skip-->(.*?)<!--/skip-->(.*?)$!si","\\1\\3", $in);
А дёргаю от тута, от куда можно дёргать, и сохраняю копирайты, типа автономного процесса :)
 

.des.

Поставил пиво кому надо ;-)
Пиши реги. без [php ] [/ php] съедаются слэши.
и пока твой рег не верен. он не вырежет все скипы из строки.
например такая строка

<skip>aaa</skip>bbb<skip>cccc</skip>ddd
 

jeka!

Просто Member
А он и не говорил, что конкретно надо, я думал тока 1 скип.
ща поправлю, зашлю правильную...
 

Name

Новичок
Name по моему ты о модификаторе /s забываешь
или показывай как ты там читаешь файл..
Я не забыыаю, я о нем ничего не знаю.
В твоем примере его тоже нет, насколько я вижу.
 

.des.

Поставил пиво кому надо ;-)
короче показывай весь пример.
как читаешь файл?
 

jeka!

Просто Member
Пожалуйста проверил:

$text = join('',file('1.txt'));
$out = preg_replace("/<![-]{2}skip[-]{2}>(.*?)<!\/[-]{2}skip[-]{2}>/si","", $text);
echo $out;
 
Сверху