使用php搜索网站,或许是metas?

时间:2012-09-21 05:24:38

标签: php

如果有人想要搜索其他网站以获取信息,那么如何使用php进行此操作呢?

很抱歉,让我澄清一下,因为这是相当含糊的:假设我有一个带复选框的用户输入字段,用户选择一个选项并提交,存储在其中,让我们说$variabletest。现在我想搜索$variabletest == tags的X站点。用户在X网站上传的视频标签中的标签,X网站是预定的,毫无疑问不止一个网站。

我希望这澄清一下,我擅长编程与sql的社区,而不是应用程序创建:P但我想我想知道什么是最好的方法,通过meta标签搜索?我不需要为我编写的所有代码,只是在正确的方向上大小合适。提前致谢

  

我可以说,有7个视频网站。我的用户通过复选框选择他们希望在视频中看到的内容,我的php脚本基本上“抓取”了7个站点和sesrches中的每个站点,以便我的用户选择。也许是通过视频上的标签或甚至是metas。这就是我的困境

1 个答案:

答案 0 :(得分:1)

这可以帮到你:

// assuming an array of urls such as $urls = array("http://...","http://...")
// could easily be modified to use urls from a database output

function file_get_contents_curl($url)
{
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}



for each ($urls as $url){
    $html = file_get_contents_curl($url);

    //parsing begins here:
    $doc = new DOMDocument();
    @$doc->loadHTML($html);
    $nodes = $doc->getElementsByTagName('title');

    //get and display what you need:
    $title = $nodes->item(0)->nodeValue;

    $metas = $doc->getElementsByTagName('meta');

    for ($i = 0; $i < $metas->length; $i++)
    {
        $meta = $metas->item($i);
        if($meta->getAttribute('name') == 'description')
            $description = $meta->getAttribute('content');
        if($meta->getAttribute('name') == 'keywords')
            $keywords = $meta->getAttribute('content');
    }

    echo "Title: $title". '<br/><br/>';
    echo "Description: $description". '<br/><br/>';
    echo "Keywords: $keywords";
}