0

他のWebサイトで情報を検索したい場合、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 に答える