2012-04-19 30 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