2013-06-23 42 views
0

即時通訊使用維基百科API獲取圖片和我的網站的描述,我需要您對圖片的幫助。目前我使用此:回覆陣列中的每個圖像

$wurl = "http://en.wikipedia.org/w/api.php?action=query&prop=extracts|info|images&titles=".$wsearch."&format=json&explaintext&redirects&inprop=url&indexpageids&exintro"; 

$wjson = file_get_contents($wurl); 
$wdata = json_decode($wjson); 
$wpageid = $wdata->query->pageids['0']; 
if ($wpageid == -1) 
{ 
} 
else 
{ 
echo" 
<div id='images'> 
&nbsp;&nbsp;<p style='padding-bottom:8px;border-bottom: 6px solid #333;width:100%;'>Images for <b>$search</b>:</br></p> 
<div class='resultbox random-color-".rand(1,3)."'> 
"; 

foreach($wdata->query->pages->$wpageid->images as $iimages) 
{ 
$ititle = $iimages->title; 
$iname = $ititle; 
$ifilename = str_replace(" ", "_",$iname); 
$idigest = md5($ifilename); 
$ifolder = $idigest[0] . '/' . $idigest[0] . $idigest[1] . '/' . urlencode($iname); 
$iurl = 'http://upload.wikimedia.org/wikipedia/commons/' . $ifolder; 
echo" 
<img style='height:100px;' src='$irurl'> 
"; 
} 
echo" 
</div> 
</div> 
"; 
} 

爲了呼應從URL中每個個體圖像:

  • ​​

但是,我不能得到任何東西,或至少沒有正在我的頁面上顯示。我對JSON非常陌生,所以有人可以向我解釋我做錯了什麼?我希望你可以告訴我和未來的觀衆這樣做,因爲它真的很煩人......大聲笑,無論如何感謝提前。

編輯:

<div class="resultbox random-color-3"> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" 4="" 4a="" commons-logo.svg'=""/> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" f="" fe="" crystal_clear_app_browser.png'=""/> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" e="" e5="" eric_schmidt_at_the_37th_g8_summit_in_deauville_037.jpg'=""/> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" b="" b6="" factory_1b.svg'=""/> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" a="" a4="" flag_of_the_united_states.svg'=""/> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" 2="" 20="" google-logo.svg'=""/> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" b="" b7="" google1998.png'=""/> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" 6="" 69="" google_appliance.jpg'=""/> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" 5="" 54="" google_mountain_view_campus_dinosaur_skeleton_%27stan%27.jpg'=""/> 
<img src'http:="" upload.wikimedia.org="" wikipedia="" commons="" 8="" 8c="" google_mountain_view_campus_garden.jpg'=""/> 
</div> 

這似乎是刪除所有/人的,而不是替換用下劃線的空間...任何想法?

+0

http://stackoverflow.com/questions/8570032/getting-wikipedia-infobox-content-with-jquery –

+0

感謝,但在jQuery的多數民衆贊成,而不是PHP – Connor

+0

我已經得到你的答案在下面....希望它的作品....其工作偉大在我身邊....所以我認爲它會 – KyleK

回答

0

你有一個錯誤,我可以在你的代碼中看到...

$iurl = 'http://upload.wikimedia.org/wikipedia/commons/' . $ifolder; 
    echo"<img style='height:100px;' src='$irurl'>"; 

這裏有$iurl但那麼你是在iamge的src調用$irurl ...這可能僅僅是在計算器上一個錯字雖然.....

但那不是你真正的問題。你的問題是,維基百科的網址拍攝的圖像,沒有File: prepend,所以你必須刪除它。

這應該爲你工作...

foreach($wdata->query->pages->$wpageid->images as $iimages) 
{ 
$name = $iimages->title; 
$filename = str_replace(' ', '_',$name); 
$filename = str_replace("File:","",$filename); 
$digest = md5($filename); 
$folder = $digest[0].'/'.$digest[0].$digest[1].'/'.urlencode($filename); 
$url = 'http://upload.wikimedia.org/wikipedia/commons/'.$folder; 

echo "<img src='$url'">; 
} 
+0

忘記我的編輯,你犯了一些語法錯誤,像我一樣,他們已經解決了, 謝謝! – Connor