Intereting Posts
Какая библиотека лучше всего разбирает файлы Excel в PHP? Установите PHPUNIT с композитором Пытаясь использовать завиток для выполнения GET, отправляемое значение допускает null Микроструктура (например, Flask или Sinatra) для PHP Поддерживает ли PHP SoapClient HTTPS-соединения Зависимость от Laravel не может быть получена с помощью композитора. Альтернатива для получения источника L4? Невозможно отобразить правильную таблицу в php PDOException: вы не можете сериализовать или нестиализовать экземпляры PDO Класс проверки подлинности Codeigniter при ваших собственных потребностях Самый быстрый способ чтения содержимого файла Как управлять единицами измерения в веб-приложении PHP? «Ошибка соединения сокета» при отладке PHP / JS на Aptana 3 php одновременная загрузка файлов из одного браузера и одного и того же сценария php AJAX, субдомены и ответ 200 OK PHP держит меня от eval;) Переменные внутри строки

получение всех значений из тегов h1 с использованием php

Я хочу получить массив, содержащий все значения тега h1 из текста

Пример, если это где заданная строка ввода:

<h1>hello</h1> <p>random text</p> <h1>title number two!</h1> 

Мне нужно получить массив, содержащий это:

 titles[0] = 'hello', titles[1] = 'title number two!' 

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

Я использую это для получения первого тега:

 function getTextBetweenTags($string, $tagname) { $pattern = "/<$tagname ?.*>(.*)<\/$tagname>/"; preg_match($pattern, $string, $matches); return $matches[1]; } 

Я передаю ему строку, которую я хочу разобрать, и как $ тэг, который я ввел в «h1». Я сам не писал сам, я пытался изменить код, чтобы делать то, что хочу, но ничего действительно не работает.

Я надеялся, что кто-то сможет мне помочь.

Заранее спасибо.

Related of "получение всех значений из тегов h1 с использованием php"

вы можете использовать simplehtmldom :

 function getTextBetweenTags($string, $tagname) { // Create DOM from string $html = str_get_html($string); $titles = array(); // Find all tags foreach($html->find($tagname) as $element) { $titles[] = $element->plaintext; } } 
 function getTextBetweenTags($string, $tagname){ $d = new DOMDocument(); $d->loadHTML($string); $return = array(); foreach($d->getElementsByTagName($tagname) as $item){ $return[] = $item->textContent; } return $return; } 

Альтернатива DOM. Используйте, когда проблема с памятью.

 $html = <<< HTML <html> <h1>hello<span>world</span></h1> <p>random text</p> <h1>title number two!</h1> </html> HTML; $reader = new XMLReader; $reader->xml($html); while($reader->read() !== FALSE) { if($reader->name === 'h1' && $reader->nodeType === XMLReader::ELEMENT) { echo $reader->readString(); } } 
  function getTextBetweenH1($string) { $pattern = "/<h1>(.*?)<\/h1>/"; preg_match_all($pattern, $string, $matches); return ($matches[1]); }