PHP-скрипт, который может извлекать текст из нескольких тегов заголовков определенного веб-сайта?

Привет, я нашел несколько и немного пытался, но для меня ничего не работает. Лучшее, что я нашел, удалось извлечь название страницы, но на странице есть много тегов заголовков, и он извлекал только первый. Мне нужно это, чтобы извлечь все заголовки. Если это так, то и этот код:

<?php $text = file_get_contents("http://www.example.com"); if (preg_match('~<title[^>]*>(.*?)</title>~si', $text, $body)){ echo $body[1]; } ?> 

Попробуйте это решение

 $text = file_get_contents("http://www.example.com"); preg_match_all('/<title>.*?<\/title>/is', $text, $matches); foreach($matches[0] as $m) { echo htmlentities($m)."<br />"; } 

Например:

 // input text $text = <<<EOT <title>Lorem ipsum dolor</title> sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim <title>ad minim</title> veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip <title>ex ea</title> commodo consequat. EOT; // solution preg_match_all('/<title>(.+?)<\/title>/is', $text, $matches); foreach($matches[0] as $m) { echo htmlentities($m)."<br />"; } 

Вывод:

 <title>Lorem ipsum dolor</title> <title>ad minim</title> <title>ex ea</title> 

ПОСЛЕ ОБНОВЛЕНО (чтобы отразить изменения в вопросе).

Например, вы хотите загрузить файл «a.html»:

 <html> <body> Lorem ipsum dolor <a title="Ravellavegas.com Analysis" href="http://somewebsite.com/" /> sit amet, consectetur adipisicing elit, sed do eiusmod tempor <a title="Articlesiteslist.com Analysis" href="http://someanotherwebsite.com/" /> incididunt ut labore et dolore magna aliqua. </body> </html> 

Затем вы должны написать сценарий следующим образом:

 <?php $dom = new DOMDocument(); $dom->load('a.html'); foreach ($dom->getElementsByTagName('a') as $tag) { echo $tag->getAttribute('title').'<br/>'; } ?> 

Эти результаты:

 Ravellavegas.com Analysis Articlesiteslist.com Analysis 

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

Если это HTML, то должен быть только 1 тег … но, предоставленный, это может быть XML с XSLT. В этом случае вместо того, чтобы с помощью RegExps пытаться его проанализировать, обычно лучше создать объект DOMDocument и использовать его вместо этого:

Конечно, если документ не XML хорошо сформирован, это будет падать.

 //taken directly from the comments on PHP documentation at : // http://uk3.php.net/manual/en/domdocument.load.php // so that you can load in an XML file over HTTP $opts = array( 'http' => array( 'user_agent' => 'PHP libxml agent', ) ); $context = stream_context_create($opts); libxml_set_streams_context($context); // request a file through HTTP $xml = DOMDocument::load('http://www.example.com/file.xml'); // added this bit to get the <title> elements $aTitles = $xml->getElementsByTagName('title'); // loop and output foreach($aTitles as $oTitle) { echo "<p>{$oTitle->nodeValue}</p>\n"; } 

Мне жаль, что я совершил большую ошибку, мне не нужен заголовок тега, это что-то другое. В коде сайта часть html выглядит так:

 <td><a title="Ravellavegas.com Analysis" href="http://www.statscrop.com/www/ravellavegas.com"> 

Из него мне нужно exctract только webadress, поэтому из этого только ravellavegas.com