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
Форумы портала PHP.SU :: Версия для печати :: Как завернуть данные масства в php-массив
Форумы портала PHP.SU » » Вопросы новичков » Как завернуть данные масства в php-массив

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

1. mstdmstd - 04 Октября, 2019 - 15:28:42 - перейти к сообщению
Всем привет
Получаю массив данных (20 элементов около 50 полей каждый )курлом
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [0] => stdClass Object
  3.         (
  4.             [documentId] => 8lnAjG0B8Afq4kl6-fGi
  5.             [verified] =>
  6.             [commentsCount] => 433
  7.            

Нужно сделать демо-версию этих данных и завернуть эти данные в php-массив
Вручную это довольно долго ...
Вроде в есть спец функция для этого ?

Спасибо!
2. andrewkard - 04 Октября, 2019 - 16:01:46 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. echo json_encode($data);
  2.  
  3. $json = ''; //вставим сюда то что вывела строка выше
  4.  
  5. $data = json_decode($json,1);
3. mstdmstd - 04 Октября, 2019 - 17:21:15 - перейти к сообщению
Я сделал :

PHP:
скопировать код в буфер обмена
  1.         $json = 'Array
  2. (
  3.    [0] => stdClass Object
  4.        (
  5.            [documentId] => 8lnAjG0B8Afq4kl6-fGi
  6.            [verified] =>
  7.            [commentsCount] => 433
  8.            [likesCount] => 53262
  9.            [edgeCount] => 12
  10.            ...
  11.            [TotalCount] => 945
  12.            [ListId] =>
  13.            [ListName] =>
  14.            [IsBusinessAccount] =>
  15.        )
  16.  
  17.    [19] => stdClass Object
  18.        (
  19.            [documentId] => BlXxbW0B8Afq4kl6Bf2t
  20.            [verified] =>
  21.            [commentsCount] => 26
  22.            [likesCount] => 1521
  23.            [edgeCount] => 12
  24.            ...
  25.            [TotalCount] => 369
  26.            [ListId] =>
  27.            [ListName] =>
  28.            [IsBusinessAccount] => 1
  29.        )
  30.  
  31. )';
  32.  

$data = json_decode($json,1);
echo $data;
и ничего не вывело . что неправильно?
4. Мелкий - 04 Октября, 2019 - 17:33:33 - перейти к сообщению
А что, вам прямо вот в таком вот, кхм, как бы корректно выразиться, виде - данные и приходят?
5. mstdmstd - 04 Октября, 2019 - 17:36:26 - перейти к сообщению
Я сократил - так они отображаются
А в чем подвох ?
6. Vladimir Kheifets - 04 Октября, 2019 - 19:57:30 - перейти к сообщению
mstdmstd пишет:
Я сделал :

PHP:
скопировать код в буфер обмена
  1.         $json = 'Array
  2. (
  3.    [0] => stdClass Object
  4.        (
  5.            [documentId] => 8lnAjG0B8Afq4kl6-fGi
  6.            [verified] =>
  7.            [commentsCount] => 433
  8.            [likesCount] => 53262
  9.            [edgeCount] => 12
  10.            ...
  11.            [TotalCount] => 945
  12.            [ListId] =>
  13.            [ListName] =>
  14.            [IsBusinessAccount] =>
  15.        )
  16.  
  17.    [19] => stdClass Object
  18.        (
  19.            [documentId] => BlXxbW0B8Afq4kl6Bf2t
  20.            [verified] =>
  21.            [commentsCount] => 26
  22.            [likesCount] => 1521
  23.            [edgeCount] => 12
  24.            ...
  25.            [TotalCount] => 369
  26.            [ListId] =>
  27.            [ListName] =>
  28.            [IsBusinessAccount] => 1
  29.        )
  30.  
  31. )';
  32.  

$data = json_decode($json,1);
echo $data;
и ничего не вывело . что неправильно?

Добрый день!
В json_decode возвращает объект, а в переменной $json д.б. строка в формате json.
Пример.
$json - получаю Response через curl
Спойлер (Отобразить)

json_decode возвращает массив
Спойлер (Отобразить)
Удачи!
7. Строитель - 04 Октября, 2019 - 20:09:47 - перейти к сообщению
mstdmstd пишет:
Вроде есть спец функция для этого ?
var_export() ?
8. Vladimir Kheifets - 05 Октября, 2019 - 15:28:04 - перейти к сообщению
mstdmstd пишет:
Всем привет
Получаю массив данных (20 элементов около 50 полей каждый )курлом
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [0] => stdClass Object
  3.         (
  4.             [documentId] => 8lnAjG0B8Afq4kl6-fGi
  5.             [verified] =>
  6.             [commentsCount] => 433
  7.            

Нужно сделать демо-версию этих данных и завернуть эти данные в php-массив
Вручную это довольно долго ...
Вроде в есть спец функция для этого ?

Спасибо!

Добрый день!
Начнём с того, курлом(cURL) Вы не можете получить массив данных.
Если всё проходит успешно, то $result = curl_exec($ch) возврашает строку.
Вероятно, Вы через cURL отправляете запрос API и получаете ответ.
Для начала, нужно разобраться с тем, в каком формате данные, затем определить
какую функцию или класс PHP использовать для преобразования строки в объект.
Если формат данных JSON, то нужна функция json_decode,
ecли XML, то есть несколько, например, simplexml_load_String.
Объект, который Вы показали, видимо, результат функции json_decode.
Вам необходимо преобразовать этот объект в массив.
Допустим, что создан такой объект:
Спойлер (Отобразить)
Вам посоветовали воспользоваться функцией var_export
Спойлер (Отобразить)

Получается такой результ:
Спойлер (Отобразить)

Попробуйте сделать так:
Спойлер (Отобразить)

Результы здесь:
Спойлер (Отобразить)
Удачи!
9. LIME - 05 Октября, 2019 - 16:39:28 - перейти к сообщению
Vladimir Kheifets пишет:
Допустим, что создан такой объект:
Vladimir Kheifets пишет:
Результы здесь:
а теперь наоборот и получится ответ на вопрос как его видит тс

 

Powered by ExBB FM 1.0 RC1