Получить текст между тегами HTML

Хорошо, это довольно простой вопрос, но я им не знаком с PHP и не смог понять это. Строка ввода – это $ data im, пытающаяся продолжать тянуть и использовать только первое совпадение. Неправильно ли это? Это может быть даже не лучший способ выполнить действие, im просто пытается вытащить содержимое между двумя html-тегами (первый набор найден) и отбросить остальную часть данных. Я знаю, что есть похожие вопросы, я читаю их все, мой вопрос – это смесь, если это лучший способ сделать это и как я могу определить совпадение в качестве нового ввода для остальной части оставшегося кода. Если я изменяю $ matches на $ data2 и использую его оттуда, он возвращает ошибки.

preg_match('/<h2>(.*?)<\/h2>/s', $data, $matches); 

Использование регулярных выражений, как правило, является хорошей идеей для вашей проблемы.

Когда вы посмотрите на http://php.net/preg_match, вы увидите, что $ matches будет массивом, так как может быть несколько совпадений. Пытаться

 print_r($matches); 

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

РЕДАКТИРОВАТЬ:

Если есть совпадение, вы можете получить текст, извлеченный между группой скобок, с помощью

 print($matches[1]); 

Если у вас было более одной группы скобок, они были бы пронумерованы 2, 3 и т. Д. Вы также должны рассмотреть случай, когда совпадения нет, и в этом случае массив будет иметь размер 0.

Не анализируйте HTML через preg_match , вместо этого используйте этот класс PHP:

Класс DOMDocument

Пример:

 <?php $html= "<p>hi</p> <h1>H1 title</h1> <h2>H2 title</h2> <h3>H2 title</h3>"; // a new dom object $dom = new domDocument('1.0', 'utf-8'); // load the html into the object ***/ $dom->loadHTML($html); //discard white space $dom->preserveWhiteSpace = false; $hTwo= $dom->getElementsByTagName('h2'); // here u use your desired tag echo $hTwo->item(0)->nodeValue; //will return "H2 title"; ?> 

Справка

Вы можете сделать это так:

 $h1 = preg_replace('/<h1[^>]*?>([\\s\\S]*?)<\/h1>/', '\\1', $h1); 

Это приведет к отключению или разворачиванию ТЕКСТа из HTML-тегов <H1></H1>