не получается принять XML запрос с api

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
anton-logom
Сообщения: 2
Зарегистрирован: 28 ноя 2014, 17:59

не получается принять XML запрос с api

Сообщение anton-logom »

Доброго времени суток, уважаемые форумочане!

Передо мной стоит задача создания небольшого поисковика музыки с использованием api от VK. Нашел на хабре статью про это , скачал класс, сделал для начала простейший сценарий точно по образцу, который только выводит информацию о полученом массиве:

Код: Выделить всё

 <?phprequire '../include/vkapi.class.php';$api_id = '4645685';$vk_id  = '***тут цифровой ID моей страницы***';$VK = new vkapi($api_id, $vk_id); $resp = $VK->api('audio.search', array(        'q' => "Что-то там", //сам запрос        'auto_complete' => '1',        'sort' => '2',        'count' => '50',        'offset' => '0'    ));    var_dump($resp);?>
Как говорится, ничто не предвещало беды, однако при выполнении этого кода выдается гора warning'ов , а в массив ничего не пишется:
 ошибки

Код: Выделить всё

[Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Space required after the Public Identifier in /home/u493100661/public_html/register/include/vkapi.class.php on line 54

Warning: simplexml_load_string() [function.simplexml-load-string]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /home/u493100661/public_html/register/include/vkapi.class.php on line 54

Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/u493100661/public_html/register/include/vkapi.class.php on line 54

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : SystemLiteral " or ' expected in /home/u493100661/public_html/register/include/vkapi.class.php on line 54

Warning: simplexml_load_string() [function.simplexml-load-string]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /home/u493100661/public_html/register/include/vkapi.class.php on line 54

Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/u493100661/public_html/register/include/vkapi.class.php on line 54

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing in /home/u493100661/public_html/register/include/vkapi.class.php on line 54

Warning: simplexml_load_string() [function.simplexml-load-string]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /home/u493100661/public_html/register/include/vkapi.class.php on line 54

Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/u493100661/public_html/register/include/vkapi.class.php on line 54
bool(false)/code][/spoiler]

В гугле был, там ничего подобного не нашел (везде пишут только об ошибках, которые выдаёт сам ВК), пробовал вставлять в документ доктайп, менять кодировку через header() и iconv(), и ещё много чего, но всё без толку...

PHP знаю вроде "на уровне ниже среднего", но XML для меня - тёмный лес...
Помогите, пожалуйста, понять, в чём проблема.
XELAD
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25

Re: не получается принять XML запрос с api

Сообщение XELAD »

Что я вынес из класса, который там используется (vkapi.class.php):
$data = curl_exec($ch);
curl_exec возвращает TRUE либо FALSE, и только в случае установленной опции CURLOPT_RETURNTRANSFER будет возвращен результат выполнения. Результат ($data) затем передаётся в simplexml_load_string , и, если у вас php установлен не с опцией, то получите Boolean, а это не XML.
anton-logom
Сообщения: 2
Зарегистрирован: 28 ноя 2014, 17:59

Re: не получается принять XML запрос с api

Сообщение anton-logom »

Спасибо, я проверил, но эта опция включена
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

Попробовал добавить еще curl_setopt($ch, CURLOPT_HEADER, 1);, но это не изменило ситуацию, просто стало выдаваться еще и следующее:
Warning: simplexml_load_string() [function.simplexml-load-string]: HTTP/1.1 302 Found in /home/u493100661/public_html/register/include/vkapi.class.php on line 54
Ответить