2011-12-16 6 views
0

http://en.wikipedia.org/w/api.php?action=parse&page=Petunia&format=xmlでウィキペディアへのAPI呼び出しを試みていますが、xmlはHTMLタグとCSSタグでいっぱいです。記事からwikipediaの説明を取得します

タグなしのプレーンテキストのみを取得する方法はありますか?ありがとう!

*編集1:ヌルが表示

$json = json_decode(file_get_contents('http://en.wikipedia.org/w/api.php?action=parse&page=Petunia&format=json')); 
$txt = strip_tags($json->text); 
var_dump($json); 

+0

は、エラー・リターンはありませんか? (コンテンツを取得するためにコマンドを使用する場合は403を取得すると、認証キーが必要です) – ajreal

+0

はい、そうです(私のphp.iniはエラーを表示しないように強制されました)。どうすればこの鍵を入手できますか? –

+0

-1、これはこの質問には関係ありません。 – ajreal

答えて

1

質問が部分的に

$url = 'http://en.wikipedia.org/w/api.php?action=parse&page=Petunia&format=json&prop=text'; 
$ch = curl_init($url); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_USERAGENT, "TestScript"); // required by wikipedia.org server 
$c = curl_exec($ch); 

$json = json_decode($c); 

var_dump(strip_tags($json->{'parse'}->{'text'}->{'*'})) 

hereに答えた私はfile_get_contentsを使用することができませんでしたが、それはcURLで正常に動作します。

+0

私はちょうどもう一つ知りたいのですが、それは有料であるか、または「Wikipediaのコンテンツ」というタグを付けてコンテンツを表示する必要がありますか?またはその他の特別な許可 –

+1

Wikipedia(および使用している他のWiki)の[license](https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License)を見てください。それはあなたが作品を帰属させなければならないと言います。そのため、コンテンツはウィキペディアのものです。私はあなたのソースを指定しないでコピーすることをお勧めしますが(あなたの評判は上がっています)。ただし、(あなたが規約を尊重している限り)ボット/ cURLによるコンテンツの使用は禁止されていませんが、サイトを叩いてしまうと、あなたのIPがAPIを使用することを禁止することができます。ウィキペディアは無料です。 –

0

xmlを使ってウィキペディアから情報や説明を取り出すことができます。

  $url = "http://en.wikipedia.org/w/api.php?action=opensearch&search=".$term."&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); // Include head as needed 
     curl_setopt($ch, CURLOPT_NOBODY, FALSE);  // Return body 
     curl_setopt($ch, CURLOPT_VERBOSE, FALSE);   // Minimize logs 
     curl_setopt($ch, CURLOPT_REFERER, "");   // Referer value 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // No certificate 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);  // Follow redirects 
     curl_setopt($ch, CURLOPT_MAXREDIRS, 4);    // Limit redirections to four 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);  // Return in string 
     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"); // Webbot name 
     $page = curl_exec($ch); 
     $xml = simplexml_load_string($page); 
     if((string)$xml->Section->Item->Description) { 
      print_r(array((string)$xml->Section->Item->Text, 
      (string)$xml->Section->Item->Description, 
      (string)$xml->Section->Item->Url)); 
     } else { 
      echo "sorry"; 
     }

しかし、カール良い一日を...サーバーにインストールする必要があります...

関連する問題