Извлечь заголовок и описание из нескольких 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>
Другие вопросы по тегам