Страница 1 из 1

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

Добавлено: 28 ноя 2014, 18:11
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 для меня - тёмный лес...
Помогите, пожалуйста, понять, в чём проблема.

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

Добавлено: 29 ноя 2014, 02:13
XELAD
Что я вынес из класса, который там используется (vkapi.class.php):
$data = curl_exec($ch);
curl_exec возвращает TRUE либо FALSE, и только в случае установленной опции CURLOPT_RETURNTRANSFER будет возвращен результат выполнения. Результат ($data) затем передаётся в simplexml_load_string , и, если у вас php установлен не с опцией, то получите Boolean, а это не XML.

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

Добавлено: 29 ноя 2014, 10:23
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