2

Yandex API を使用してメタ検索エンジンを作成しています。Yandex は結果を XML 形式で提供します。したがって、URL、タイトル、説明などのさまざまなフィールドを取得するには、XML 応答をトラバースする必要があります。

Yandex による XML 応答は次のとおりです。 http://pastebin.com/kAVAVri9

これが私が実装した方法です:貼り付け

$dom5 = new DOMDocument();

if ($dom5->loadXML($site_results)) {

    $results  = $dom5->getElementsByTagName("response");
    $results1 = $results->getElementsByTagName("results");
    $results2 = $results1->getElementsByTagName("group");


    $totals["yandex"] = 1000;


    foreach ($results1 as $link) {

        $url = $link->getElementsByTagName("doc")->item(2)->nodeValue;
        ;
        $url = str_replace('http://', '', $url);
        if (substr($url, -1, 1) == '/') {
            $url = substr($url, 0, strlen($url) - 1);
        }
        $search_results[$i]["url"] = $url;

        $title                       = $link->getElementsByTagName("doc")->item(4)->nodeValue;
        $search_results[$i]["title"] = $title;
        $test                        = $link->getElementsByTagName("doc");
        $test1                       = $test->getElementsByTagName("title");
        $desc                        = $test1->getElementsByTagName("headline")->item(0)->nodeValue;
        $search_results[$i]["desc"]  = $desc;

        $search_results[$i]["engine"]   = 'yandex';
        $search_results[$i]["position"] = $i + 1;
        $i++;

    }
}

私はphpが初めてです。愚かな間違いを犯した場合は、ご容赦ください。実装によって結果を取得できません。間違いを見つけて、xml 応答から必要なフィールドを取得するのを手伝ってください。ありがとうございました!

4

1 に答える 1