如何使用WikipediaAPI在php页面上显示图像
嗨,我有一个php页面,它使用WikipediaAPI使用zend框架来显示从搜索查询中获得的结果。此时,它会显示文章的标题和一个片段。我想能够显示一个图像太。关于这件事,请给我进一步的建议。谢谢 下面是我的代码:(q是在搜索框中键入的任何内容的值)如何使用WikipediaAPI在php页面上显示图像,php,mediawiki,wikipedia-api,getimagedata,Php,Mediawiki,Wikipedia Api,Getimagedata,嗨,我有一个php页面,它使用WikipediaAPI使用zend框架来显示从搜索查询中获得的结果。此时,它会显示文章的标题和一个片段。我想能够显示一个图像太。关于这件事,请给我进一步的建议。谢谢 下面是我的代码:(q是在搜索框中键入的任何内容的值) srsearch($_POST['q']); //执行请求 //迭代XML结果集 $result=$wikipedia->get(); } 捕获(例外$e){ die('ERROR:'。$e->getMessage()); } ?> “”的搜索结果
srsearch($_POST['q']);
//执行请求
//迭代XML结果集
$result=$wikipedia->get();
}
捕获(例外$e){
die('ERROR:'。$e->getMessage());
}
?>
“”的搜索结果
没有什么好办法。您可以获取生成的HTML,找到第一个具有合理大小的图像并显示它(一旦您知道图像名称,您就可以使用它来获取可以在您自己的图像标记中使用的URL) 也有机会通过包装器API使用Wikipedia页面,例如,它既可以实时运行(询问Wiki页面的当前JSON表示形式),也可以基于存储(查询以前在Elasticsearch和MongoDB中摄取的多个页面)
特别是,JSONpedia提供了一个HTML视图,将为页面提取的JSON呈现为HTML
例如,此查询处理en:Albert_Einstein wiki页面,提取JSON并使用完全解析的多媒体URI将其呈现为基本HTML
请格式化您的代码。。。包括删除那些不必要的空白线条,因为我不熟悉堆栈溢出的格式设置。您希望显示什么类型的图像?页面上的第一个图像?还是呈现页面的屏幕截图?还是
文件后面的图像:
页面?还是别的什么?页面上的第一张图片。如果我显示了大约10个链接,我希望页面的第一个图像与标题和代码片段一起显示。@如果你知道如何获得呈现页面的屏幕截图,请仔细想想,是否可以显示这些图像而不是代码片段?我想创建一个页面,减少文本阅读,使用视觉工具更快地识别。因此,用户只需在查看屏幕截图后单击标题,即可直接进入wikipage。
<?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 }?>