Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从多个URL提取标题和说明_Php_Url_Title_Metatag - Fatal编程技术网

Php 从多个URL提取标题和说明

Php 从多个URL提取标题和说明,php,url,title,metatag,Php,Url,Title,Metatag,我有一个所有文章的链接列表。我正在尝试使用PHP一次从所有这些文件中提取标题和描述。我还希望文章标题是链接到URL的超链接,并在下面以斜体显示描述 我的问题是:当我对一个链接进行粘贴时,它可以工作,但当我尝试多个链接时,或者即使我复制代码并手动粘贴每个链接,它也不起作用。下面是我的代码,我有一个链接的工作。有什么想法吗 <html> <a href="http://bit.ly/18EFx87"> <b><?php fu

我有一个所有文章的链接列表。我正在尝试使用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>

我想你指的是多个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>

谢谢,拉斯姆斯。我知道你在那里做什么,代码是有意义的——出于某种原因,当我尝试它时,它不会运行或出现空白。知道为什么吗?那代码在你这边运行吗?杰普刚刚测试过。很好。如果没有用url替换“url2”,它会开始抱怨,这可能会导致服务器隐藏每个输出。你在apache上运行它吗?别担心!我看到您刚刚编辑了foreach标记中的代码-非常好。正是我需要的。谢谢