Я хочу закодировать функцию php, которая соединяется с URL википедии и получить содержание статьи в википедии. Я использую cURL с php. Я имею в виду это блог .
Проблема в том, что функция не видит содержимое 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 (): пустая строка предоставляется в качестве входных данных в
C: \ wamp \ www \ Project1 \ wiki5.php в строке 12
Я использую другие примеры кода с той же функцией, и она не работает только с URL-адресом Википедии.
Любая помощь, пожалуйста!
Спасибо
Просто добавь 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);
Других решений пока нет …