2012-04-19 57 views
1

嗨,我已經得到了使用使用Zend框架來顯示從搜索查詢得到的結果維基百科API PHP頁面PHP頁面上顯示。目前它顯示文章的標題及其片段。我希望能夠顯示圖像。請在這方面進一步告知我。謝謝。如何獲得圖像使用維基百科的API

下面是我的代碼:(Q無論是在搜索框中已輸入的值)

<?php 
// if form submitted 
if (isset($_POST['q'])) { 
    // load Zend classes 
    require_once 'Zend/Loader.php'; 
    Zend_Loader::loadClass('Zend_Rest_Client'); 
    try { 
     // initialize REST client 
     $wikipedia = new Zend_Rest_Client('http://en.wikipedia.org/w/api.php'); 
     // set query parameters 
     $wikipedia->action('query'); 
     $wikipedia->list('search'); 
     $wikipedia->srwhat('text'); 
     $wikipedia->format('xml'); 
     $wikipedia->srsearch($_POST['q']); 
     // perform request 
     // iterate over XML result set 
     $result = $wikipedia->get(); 
    } 
    catch (Exception $e) { 
     die('ERROR: ' . $e->getMessage()); 
    } 
?> 

<h2>Search results for '<?php echo $_POST['q']; ?>'</h2> 
    <ol> 
<?php foreach ($result->query->search->p as $r): ?> 
<li><a href="http://www.wikipedia.org/wiki/ 
<?php echo $r['title']; ?>"> 
<?php echo $r['title']; ?></a> <br/> 
<small><?php echo $r['snippet']; ?></small></li> 
<?php endforeach; ?> 
</ol> 
<?php }?> 
+1

格式你的代碼,請......包括消除這些不必要的空白行 – ManseUK 2012-04-19 16:41:55

+0

道歉窮人格式化我新的堆棧溢出。 – 2012-04-19 18:04:48

+0

你想要什麼樣的形象,以顯示?頁面上的第一張圖片?還是渲染頁面的屏幕截圖?或者在「文件:」頁面後面的圖像?或者是其他東西? – svick 2012-04-19 18:53:13

回答

0

沒有任何AFAIK真正的好辦法。你可以生成的HTML,發現其中有合理的規模第一併顯示圖像(一旦你知道了圖像的名字,你可以使用the imageinfo API,讓你可以在自己的圖像標籤使用的URL)。

0

還有機會通過包裝API(如JSONpedia)來使用維基百科頁面,它既可以實時工作(請求當前的Wiki頁面的JSON表示),也可以基於存儲(先前在Elasticsearch和MongoDB中查詢多個頁面) 。

特別JSONpedia提供HTML視圖與呈現爲HTML爲頁面提取的JSON。

例如此查詢處理EN:Albert_Einstein wiki頁面,提取JSON並將其與完全解決多媒體的URI渲染到基本的HTML。

http://jsonpedia.org/annotate/resource/html/en%3AAlbert_Einstein?&procs=Extractors#references