用维基百科页面

时间:2016-03-08 17:47:05

标签: php curl wikipedia-api

我想编写一个连接维基百科网址的php函数,并获取维基百科文章的内容。我用php的cURL。我指的是这个blog

问题是:该函数没有看到url的内容并返回错误。

这是我的代码:

<?php 
$wikipediaURL = 'http://fr.wikipedia.org/wiki/Megadeth';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $wikipediaURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Le blog de Samy Dindane (www.dinduks.com)');
$resultat = curl_exec ($ch);
curl_close($ch);
$wikipediaPage = new DOMDocument();
$wikipediaPage->loadHTML($resultat);
foreach($wikipediaPage->getElementsByTagName('div') as $div){
if($div->getAttribute('id') == "bodyContent"){
    $description = '<p>' . $div->getElementsByTagName('p')->item(0)->nodeValue. '</p>';
    $description = preg_replace('/\[[0-9]*\][,]|\[[0-9]*\]/', '', $description);
    echo $description;    }}
?>

这是错误消息:

  

警告:DOMDocument :: loadHTML():作为输入提供的空字符串   第12行的C:\ wamp \ www \ Project1 \ wiki5.php

我使用具有相同功能的其他代码示例,并且它不仅适用于维基百科网址。

请帮忙! 感谢

1 个答案:

答案 0 :(得分:0)

只需添加CURLOPT_FOLLOWLOCATION选项,您的代码即可运行:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $wikipediaURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, True);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);                                     # <----
curl_setopt($ch, CURLOPT_USERAGENT, 'Le blog de Samy Dindane (www.dinduks.com)');
$resultat = curl_exec ($ch);
curl_close($ch);
相关问题