如何从*中获取信息到我的应用程序中

时间:2021-10-25 20:32:47

Hi guys I wish to get information for entries I have in my database from wikipedia like for example some stadiums and country information. I'm using Zend Framework and also how would I be able to handle queries that return multiple ambiguous entries or the like.. I would like all the help I can get here...

嗨,大家好,我想从*获取我在数据库中的条目信息,例如一些体育场馆和国家信息。我正在使用Zend Framework以及如何处理返回多个模糊条目等的查询...我希望能得到所有帮助...

3 个解决方案

#1


Do a simple HTTP request to the article you are looking to import. Here's a good library which might help with parsing the HTML, though there are dozens of solutions for that as well, including using the standard DOM model which is provided by php.

对要导入的文章执行简单的HTTP请求。这里有一个很好的库可能有助于解析HTML,虽然有很多解决方案,包括使用php提供的标准DOM模型。

<?php
require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://www.yahoo.com/");
if (!PEAR::isError($req->sendRequest())) {
    echo $req->getResponseBody();
}
?> 

Note, you will be locked out of the site if your traffic levels are deemed too high. (If you want a HUGE number of articles, download the database)

请注意,如果您的流量水平过高,您将被锁定在网站之外。 (如果你想要大量文章,请下载数据库)

#2


Wikipedia is based on MediaWiki, offering an Application Programmable Interface (API).

Wikipedia基于MediaWiki,提供应用程序可编程接口(API)。

You can check out MediaWiki API on Wikipedia - http://en.wikipedia.org/w/api.php

您可以在*上查看MediaWiki API - http://en.wikipedia.org/w/api.php

Documentation for MediaWiki API - http://www.mediawiki.org/wiki/API

MediaWiki API的文档 - http://www.mediawiki.org/wiki/API

#3


This blog has a really good code for get a definition from wiki

这个博客有一个非常好的代码,可以从维基获得定义

<?php
//FUNCTION THAT :PARAMETER - KEYWORD , AND RETURNS WIKI DEFINITION (IN ARRAY FORMAT)
function wikidefinition($s) {
//ENGLISH WIKI
    $url = "http://en.wikipedia.org/w/api.php?action=opensearch&search=".urlencode($s)."&format=xml&limit=1";
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
    curl_setopt($ch, CURLOPT_POST, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_NOBODY, FALSE);
    curl_setopt($ch, CURLOPT_VERBOSE, FALSE);
    curl_setopt($ch, CURLOPT_REFERER, "");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 4);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; he; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8");

    $page = curl_exec($ch);
    $xml = simplexml_load_string($page);
    if((string)$xml->Section->Item->Description) {
        return array((string)$xml->Section->Item->Text, 
                     (string)$xml->Section->Item->Description, 
                     (string)$xml->Section->Item->Url);
    } else {
        return "";
    }
}
//END OF FUNCTION WIKIDEFINITIONS


//USE OF FUNCTION
$data = wikidefinition('Bangladesh') ;
//var_dump( wikidefinition('bangladesh') ) ; //displays the array content
echo "Word:"       . $data[0] . "<br/>";
echo "Definition:" . $data[1]  . "<br/>";
echo "Link:"       . $data[2] . "<br/>";

?>

#1


Do a simple HTTP request to the article you are looking to import. Here's a good library which might help with parsing the HTML, though there are dozens of solutions for that as well, including using the standard DOM model which is provided by php.

对要导入的文章执行简单的HTTP请求。这里有一个很好的库可能有助于解析HTML,虽然有很多解决方案,包括使用php提供的标准DOM模型。

<?php
require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://www.yahoo.com/");
if (!PEAR::isError($req->sendRequest())) {
    echo $req->getResponseBody();
}
?> 

Note, you will be locked out of the site if your traffic levels are deemed too high. (If you want a HUGE number of articles, download the database)

请注意,如果您的流量水平过高,您将被锁定在网站之外。 (如果你想要大量文章,请下载数据库)

#2


Wikipedia is based on MediaWiki, offering an Application Programmable Interface (API).

Wikipedia基于MediaWiki,提供应用程序可编程接口(API)。

You can check out MediaWiki API on Wikipedia - http://en.wikipedia.org/w/api.php

您可以在*上查看MediaWiki API - http://en.wikipedia.org/w/api.php

Documentation for MediaWiki API - http://www.mediawiki.org/wiki/API

MediaWiki API的文档 - http://www.mediawiki.org/wiki/API

#3


This blog has a really good code for get a definition from wiki

这个博客有一个非常好的代码,可以从维基获得定义

<?php
//FUNCTION THAT :PARAMETER - KEYWORD , AND RETURNS WIKI DEFINITION (IN ARRAY FORMAT)
function wikidefinition($s) {
//ENGLISH WIKI
    $url = "http://en.wikipedia.org/w/api.php?action=opensearch&search=".urlencode($s)."&format=xml&limit=1";
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPGET, TRUE);
    curl_setopt($ch, CURLOPT_POST, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_NOBODY, FALSE);
    curl_setopt($ch, CURLOPT_VERBOSE, FALSE);
    curl_setopt($ch, CURLOPT_REFERER, "");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 4);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; he; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8");

    $page = curl_exec($ch);
    $xml = simplexml_load_string($page);
    if((string)$xml->Section->Item->Description) {
        return array((string)$xml->Section->Item->Text, 
                     (string)$xml->Section->Item->Description, 
                     (string)$xml->Section->Item->Url);
    } else {
        return "";
    }
}
//END OF FUNCTION WIKIDEFINITIONS


//USE OF FUNCTION
$data = wikidefinition('Bangladesh') ;
//var_dump( wikidefinition('bangladesh') ) ; //displays the array content
echo "Word:"       . $data[0] . "<br/>";
echo "Definition:" . $data[1]  . "<br/>";
echo "Link:"       . $data[2] . "<br/>";

?>