Вырезание подстроки из строки

Mad777

Новичок
Вырезание подстроки из строки

Проблема в том как лучше реализовать вырезание всего контекста между такими строками <p clas=a>? Зарание спасибо, а то уже замучался...
Нарпимер:
<p class=a>my text and other info!<p class=a>
Вот надо получить:
my text and other info!
 

Mad777

Новичок
Автор оригинала: MD
[m]strpos[/m]
[m]substr[/m]
Тут вот, если так
$pos=strpos($string,'<p class=a>');
так ничего не выйдет, только если так
$pos=strpos($string,'p class=a');
Допустим это позиция откуда начинать, тогда как определить до куда считать?
Ведь контент такой:
текст какой-либо <p class=a>my text and other info!<p class=a> снова текст.

Так реально ли с этими функциями реализовать? Как правильно?

-~{}~ 16.05.06 14:35:

HeavyNatas
Я думаю тут несложный пример, покажи?
 

Andreika

"PHP for nubies" reader
Mad777
$pos2 = [m]strpos[/m]($string,'<p class=a>',$pos+1);

если нада вырезать именно между этими двумя тэгами
 

WP

^_^
Mad777
Регулярные выражения нужны только там где они нужны.
 

Andreika

"PHP for nubies" reader
WP
вы считаете, что в задаче - выдернуть текст между определенными тэгами регулярки не нужны и использовать их низя?
 

MD

Guest
Andreika, можно, но зачем?

Mad777, что у тебя не получится?
 

WP

^_^
Andreika
Я считаю что регулярные выражения для тех задач которые в строковых функциях (substr, strpos и т.д.) решаются с большими затруднениями в виду динамичности строки, т.е. нужно искать что-то. А когда задачка простая (как эта), лучше строковые функциями.
 

Mad777

Новичок
Автор оригинала: MD
Andreika, можно, но зачем?

Mad777, что у тебя не получится?
Символы <>, не определяется позиция... только без них определяется.
И ещё таких тего <p class=a> несколько, я думаю поробовать использовать preg_match_all
 

MD

Guest
Mad777, про позицию, это бред.

а про несколько тегов, мы здесь слышим в первый раз...
 

WP

^_^
Mad777
Чтоб не разводить тут флейм.
PHP:
$string = '<p class=a>my text and other info!<p class=a>';
$substring  = '<p class=a>';
echo substr($string,strpos($string,$substring)+strlen($substring),strpos($string,$substring,1)-strlen($substring))."\n";
// my text and other info!
preg_match('~('.preg_quote($substring,'~').')(.*?)\1~',$string,$matches);
echo $matches[2];
// my text and other info!
 

WP

^_^
P.S. если несколько тегов:
PHP:
$string = '<p class=a>one<p class=a>.<p class=a>two<p class=a>.<p class=a>three<p class=a>';
$substring  = '<p class=a>';
preg_match_all('~('.preg_quote($substring,'~').')(.*?)\1~',$string,$matches);
var_dump($matches[2]);
/*
array(3) {
  [0]=>
  string(3) "one"
  [1]=>
  string(3) "two"
  [2]=>
  string(5) "three"
}
*/
 

HeavyNatas

Новичок
WP,
вот открывает кто то твой код и начинает мучительно соображать и считать, что же делает сия строчка
PHP:
echo substr($string,strpos($string,$substring)+strlen($substring),strpos($string,$substring,1)-strlen($substring))
 

MD

Guest
HeavyNatas, если эта строчка заставила тебя "мучительно соображать и считать", то тебе рановато давать советы про регулярные выражения.
ничего личного.
 

WP

^_^
HeavyNatas
Пусть учится задавать вопросы =) А это просто шутка.
 

HeavyNatas

Новичок
MD,
почему ты так уверен в моих способностях давать советы по регулярным выражениям ?
 

MD

Guest
HeavyNatas, если человек не умеет читать, то ему рано кого-то чему-то учить.
 
Сверху