2012-02-24 32 views
1

誰かがGoogleのランダム画像URLを取得する方法を知っているのですか? ご協力いただきありがとうございます。ランダム画像URL Googleから

+0

「ランダム」を定義します。 – JJJ

+0

Google検索を行い、結果を配列で取得します。ランダムな要素を選んでください。 –

+0

ページがリロードされるたびにランダムなものがどんな種類の写真であるか気にしないでください –

答えて

0

まずダウンロードを助け、PHP Simple HTML DOM Parserが含まれます。

<?php 
require_once("simplehtmldom.php"); 

$image = random_image("life"); 
if ($image !== false) { 
    echo '<img src="'.$image.'" width="500" />'; 
} 

function random_image($key = "love") { 
    $url = sprintf("https://www.google.com/search?q=%s&tbm=isch&sout=1", urlencode(trim($key))); 
    $html = get_page($url); 
    if ($html) { 
    $images = find_images($html); 
    if (!empty($images)) { 
     $images = $images[array_rand($images)]; 
     return $images; 
    } 
    } 
    return false; 
} 

function get_page($url = null) { 
    $url = trim($url); 
    if (!$url) { 
    return false; 
    } 
    return @file_get_contents($url); 
} 

function find_images($html = null) { 
    $html = trim($html); 
    if (!$html) { 
    return false; 
    } 
    $html = str_get_html($html); 
    $imgs = array(); 
    if ($links = $html->find(".images_table td a")) { 
    foreach($links as $link) { 
     $link = (isset($link->href)) ? $link->href : null; 
     $link = htmlspecialchars_decode(parse_url($link, PHP_URL_QUERY)); 
     parse_str($link, $link); 
     if (isset($link["imgurl"])) { 
     $imgs[] = urldecode(trim($link["imgurl"])); 
     } 
    } 
    } 
    unset($html); 
    return $imgs; 
} 
?> 
0

これまでのところ、私は考え出した最も簡単な方法は、(使用する今のところその自由)GoogleイメージAPIを使用している:

function random_google_image($topic='') { 
    $url = sprintf('http://ajax.googleapis.com/ajax/services/search/images?q=%s&v=1.0&rsz=large&start=1', urlencode($topic)); 
    $results = json_decode(file_get_contents($url))->responseData->results; 
    $image = $results[array_rand($results)]; 
    return $image->url; 
} 

echo random_google_image('sexy girl'); 

API要求は、最初の8枚の画像を取得します。 api urlの開始変数を通知します。これをランダム化して、さらに可変性を得ることもできます。また、$ imageオブジェクトのすべてのプロパティをチェックすると、有益かもしれない情報があります(ユースケースによって異なります)。

「風景」、「画像」、「画像」、「地平線」、「家」、「空」、「海」などのトピックを定義する必要があります。上記の機能に戻る。

+0

このapiは廃止されましたが、この回答は残念ながらもう機能しません。 – paj

+0

それは期待されていた。今は伝統的な掻き取りに戻る必要があります... – Deus777

0

私はこれまでにこれを書いていますが、上記のものを手に入れることができなかったとき、これが誰かを助けてくれることを願っています。つまり、他のプロジェクト(単純なHTML DOM Parserなど)を含める必要はなく、コードをそのまま使用することができます。

DOMDocumentとXMLの機能をPHPにインストールする必要があります。

https://github.com/damiankw/google.imagesearch

関連する問題