Nasıl benim uygulamasına wikipedia bilgi alabilirim

3 Cevap php

Merhaba çocuklar Ben örneğin bazı stadyumlar ve ülke bilgi için wikipedia gibi benim veritabanında var girişleri için bilgi almak istiyoruz. .. Ben burada alabilirsiniz tüm yardım istiyorum ben Zend Framework kullanarak yaşıyorum ve aynı zamanda nasıl birden belirsiz girişleri veya benzeri dönmek sorguları işlemek mümkün olacaktır ...

3 Cevap

Yapılacak basit bir HTTP request içe isteyen makalenin. Here's a good library olduğu bunun için çözümler düzinelerce de vardır ama, HTML ayrıştırma ile yardımcı olabilir, including using the standard DOM model which is provided by php.

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

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

Trafik düzeyleri çok yüksek sayılır eğer sitenin kilitli olacak, unutmayın. (Eğer yazı bir BÜYÜK numarası istiyorsanız, download the database)

Wikipedia API var MediaWiki dayanmaktadır.

Wikipedia'da MediaWiki API deneyebilirsiniz - http://en.wikipedia.org/w/api.php

MediaWiki API Belgeleri - http://www.mediawiki.org/wiki/API

This blog wiki bir tanım almak için gerçekten iyi bir kodu vardır

<?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/>";

?>