0

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

抱歉,让我澄清一下,因为这相当模糊:假设我有一个带有复选框的用户输入字段,用户选择一个选项并提交它,它存储在里面,比如说$variabletest. 现在我想搜索 X 个站点,其中$variabletest == tags. 标签与用户在X站点上传的视频标签一样,X站点是预先确定的,无疑不止一个站点。

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

我可以说,有 7 个带有视频的网站。我的用户通过复选框选择他们希望在视频中看到的内容,而我的 php 脚本基本上是“爬网”通过 7 个站点中的每一个,并针对我的用户选择的内容进行搜索。也许通过视频上的标签,甚至是元数据。这就是我的困境

4

1 回答 1

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";
}
于 2012-09-21T06:36:22.407 回答