我想编写一个连接维基百科网址的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
我使用具有相同功能的其他代码示例,并且它不仅适用于维基百科网址。
请帮忙! 感谢
答案 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);