Привет, я нашел несколько и немного пытался, но для меня ничего не работает. Лучшее, что я нашел, удалось извлечь название страницы, но на странице есть много тегов заголовков, и он извлекал только первый. Мне нужно это, чтобы извлечь все заголовки. Если это так, то и этот код:
<?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