1

嗨,我有一个使用 wikipedia API 的 php 页面,该页面使用 zend 框架来显示从搜索查询中获得的结果。目前它显示文章的标题和它的片段。我也希望能够显示图像。请就此事给我进一步的建议。谢谢。

下面是我的代码:(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 }?>
4

2 回答 2

0

还有机会通过JSONpedia之类的包装 API 使用 Wikipedia 页面,它既可以实时工作(询问 Wiki 页面的当前 JSON 表示形式),也可以基于存储(查询以前在 Elasticsearch 和 MongoDB 中摄取的多个页面)。

特别是 JSONpedia 提供了一个 HTML 视图,将提取的 JSON 呈现给 HTML 页面。

例如,此查询处理 en:Albert_Einstein wiki 页面,提取 JSON 并将其呈现为具有完全解析的多媒体 URI 的基本 HTML。

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

于 2015-03-23T17:25:08.447 回答
0

AFAIK没有任何真正好的方法。您可以获取生成的 HTML,找到第一个大小合理的图像并显示它(一旦您知道图像名称,您可以使用imageinfo API获取可以在您自己的图像标签中使用的 URL)。

于 2012-04-19T21:16:56.090 回答