2015-10-20 78 views
0

我想使用PHP從谷歌獲取圖像。所以我試圖得到幫助從網上我有一個劇本,因爲我需要的,但其顯示的致命錯誤使用dom從谷歌獲取圖像

Fatal error: Call to a member function find() on a non-object in C:\wamp\www\nq\qimages.php on line 7**

這裏是我的腳本:

<?php 
include "simple_html_dom.php"; 
$search_query = "car"; 
$search_query = urlencode($search_query); 
$html = file_get_html("https://www.google.com/search?q=$search_query&tbm=isch"); 
$image_container = $html->find('div#rcnt', 0); 
$images = $image_container->find('img'); 
$image_count = 10; //Enter the amount of images to be shown 
$i = 0; 
foreach($images as $image){ 
    if($i == $image_count) break; 
    $i++; 
    // DO with the image whatever you want here (the image element is '$image'): 
    echo $image; 
} 
?> 

我也使用Simple html dom

回答

0

看我的例子,工程和谷歌的結果獲得第一圖像:

<?php 

$url = "https://www.google.hr/search?q=aaaa&biw=1517&bih=714&source=lnms&tbm=isch&sa=X&ved=0CAYQ_AUoAWoVChMIyKnjyrjQyAIVylwaCh06nAIE&dpr=0.9"; 
$content = file_get_contents($url); 

libxml_use_internal_errors(true); 
$dom = new DOMDocument; 
@$dom->loadHTML($content); 
$images_dom = $dom->getElementsByTagName('img'); 
foreach ($images_dom as $img) { 
    if($img->hasAttribute('src')){ 
     $image_url = $img->getAttribute('src'); 
    } 
    break; 
} 


//this is first image on url 
echo $image_url; 
0

這個錯誤通常意味着$ HTML是不是一個對象。

你說這似乎很奏效,這很奇怪。如果輸出$ html,會發生什麼情況?我想象的是,該網址不可用,$ html爲空。

編輯:看起來像這可能是解析器中的錯誤。有人提交了一份bug,並在其代碼中添加了一項檢查作爲解決方法。

+0

$ html fetchis的圖像....但不是所需的格式... $ html不是空的。 – Ali

+0

直接獲取img標籤$ image_container = $ html - > - > find('img'); – Ninju

+0

謝謝我已經解決了您提供的參考錯誤,但現在簡單的HTML DOM是給這個錯誤: - 解析錯誤:語法錯誤,意想不到的'保護'(T_PROTECTED)在C:\ wamp \ www \ nq \ simple_html_dom.php在線1506 – Ali