Получить описание из Википедии из статьи
Я пытаюсь сделать API-вызов к Википедии через: http://en.wikipedia.org/w/api.php?action=parse&page=Petunia&format=xml, но xml заполнен тегами html и css.
Есть ли способ получить только простой текст без тегов? Спасибо!
* Редактировать 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);
Null отображается.
2 ответа
Решение
Здесь был частично дан ответ
$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'}->{'*'}))
Я не смог использовать file_get_contents
но он отлично работает с cURL
,
Можно получить информацию или описание из Википедии, используя 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); // Включаем голову при необходимости curl_setopt($ch, CURLOPT_NOBODY, FALSE); // Возвращаем тело curl_setopt($ch, CURLOPT_VERBOSE, FALSE); // Минимизируем логи curl_setopt($ch, CURLOPT_REFERER, ""); // Значение реферера curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // Нет сертификата 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; он; 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) { print_r(массив ((строка) $ xml-> Section-> item-> Текст, (Строка) $ xml-> Section-> item-> Описание, (Строка) $ xml-> Section-> item->URL)); } еще { эхо "извини"; }
Но curl должен быть установлен на сервере... хорошего дня...