Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Разбор массива от вКонтакте

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Elegant
Отправлено: 02 Июня, 2014 - 14:13:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 151
Дата рег-ции: Май 2012  


Помог: 1 раз(а)




ДД, не могу разобрать массива правильно
от вконтакте приходят 2 типа ответа
1
CODE (htmlphp):
скопировать код в буфер обмена
  1. {"response":[{"uid":1,"first_name":"Павел","last_name":"Дуров","screen_name":"durov","photo_max":"http:\/\/cs9591.vk.me\/v9591001\/72\/NBRJW_81WaM.jpg","online":0}]}


2
CODE (htmlphp):
скопировать код в буфер обмена
  1. {"error":{"error_code":113,"error_msg":"Invalid user id","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"users.get"},{"key":"user_ids","value":"ыфвфыв"},{"key":"fields","value":"photo_max,online,screen_name"}]}}


обрабатываю полученные данные через json_decode

показания var_dump в случае ошибки
CODE (htmlphp):
скопировать код в буфер обмена
  1. object(stdClass)#1 (1) { ["error"]=> object(stdClass)#2 (3) { ["error_code"]=> int(113) ["error_msg"]=> string(15) "Invalid user id" ["request_params"]=> array(4) { [0]=> object(stdClass)#3 (2) { ["key"]=> string(5) "oauth" ["value"]=> string(1) "1" } [1]=> object(stdClass)#4 (2) { ["key"]=> string(6) "method" ["value"]=> string(9) "users.get" } [2]=> object(stdClass)#5 (2) { ["key"]=> string(8) "user_ids" ["value"]=> string(14) "ыфвфыыв" } [3]=> object(stdClass)#6 (2) { ["key"]=> string(6) "fields" ["value"]=> string(28) "photo_max,online,screen_name" } } } }



А теперь сообственно сама задача...как можно получить в первую очередь либо response либо error
 
 Top
IllusionMH
Отправлено: 02 Июня, 2014 - 14:19:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Elegant, можно преобразовать этот код в ассоциативный массив, а не в объект, передав вторым параметром в json_decode true.
Дальше через isset проверять наличия ошибки, если нет, то проверять респонс и работать с ним.
Для объектов должно быть аналогично isset($data->error)

(Отредактировано автором: 02 Июня, 2014 - 14:22:50)

 
 Top
Elegant
Отправлено: 02 Июня, 2014 - 15:01:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 151
Дата рег-ции: Май 2012  


Помог: 1 раз(а)




Перевел в ассоциативный массив
теперь ошибка выглядит так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) { ["error"]=> array(3) { ["error_code"]=> int(113) ["error_msg"]=> string(15) "Invalid user id" ["request_params"]=> array(4) { [0]=> array(2) { ["key"]=> string(5) "oauth" ["value"]=> string(1) "1" } [1]=> array(2) { ["key"]=> string(6) "method" ["value"]=> string(9) "users.get" } [2]=> array(2) { ["key"]=> string(8) "user_ids" ["value"]=> string(0) "" } [3]=> array(2) { ["key"]=> string(6) "fields" ["value"]=> string(28) "photo_max,online,screen_name" } } } }


Я вот только не умею разбирать ассоциативные массивы...как допустим вывести из него
["error_code"]=> int(113), а именно 113
(Добавление)
Разобрался
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB