Страница 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