Извлечь заголовок и описание из нескольких URL
У меня есть список ссылок, которые все статьи. Я пытаюсь использовать PHP, чтобы извлечь заголовок и описание из всех сразу. Я также хочу, чтобы заголовок статьи был гиперссылкой на URL, а описание показывалось курсивом под ним.
Моя проблема заключается в следующем: это работает, когда я делаю это для одной ссылки, но когда я пробую несколько ссылок или даже если я дублирую код и вручную вставляю каждую ссылку, это не работает. Ниже приведен мой код, который работает для одной ссылки. Есть идеи?
<html>
<a href="http://bit.ly/18EFx87">
<b><?php
function getTitle($Url){
$str = file_get_contents($Url);
if(strlen($str)>0){
preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
return $title[1];
}
}
echo getTitle("http://bit.ly/18EFx87");
?></b><br>
</a>
<i><?php
$tags = get_meta_tags('http://bit.ly/18EFx87');
echo $tags['description'];
?></i>
</html>
1 ответ
Решение
Я предполагаю, что вы имеете в виду несколько URL, тогда что-то вроде этого будет работать.:
<html>
<?php
function getTitle($url){
@$str = file_get_contents($url); // suppressing the warning
if(strlen($str)>0){
preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
return $title[1];
} else {
return false;
}
}
$urls = array('http://bit.ly/18EFx87', 'url2');
foreach($urls as $url)
{
$title = getTitle($url);
if($title === false)
{
continue;
}
echo '<a href="' . $url . '"><b>';
echo $title;
echo '</b></a><br><i>';
$tags = get_meta_tags($url);
echo $tags['description'] . '</i>';
}
?>
</html>