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 :: Вытащить определенный данные [2]

 PHP.SU

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


 Страниц (3): « 1 [2] 3 »   

> Без описания
likvidator
Отправлено: 12 Июня, 2015 - 16:59:22
Post Id


Посетитель


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


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

[+]


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $matches=array(
  4. "Алина",
  5. "Лена",
  6. "Маша",
  7. "Елена",
  8. "Юлия");
  9. $json=file_get_contents($_SERVER['DOCUMENT_ROOT']."/15001_1000.json");
  10. $k=json_decode($json,1);
  11. foreach($k['response'] as $data){
  12. if(in_array($data['first_name'], $matches)) {
  13. echo "$data[id]::$data[first_name]<br>";
  14. }
  15. }
  16. ?>
  17.  
 
 Top
BEUJ
Отправлено: 17 Июня, 2015 - 08:10:00
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2015  


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




likvidator пишет:
осмелюсь предположить,что это битый json (т.к. скопирована часть)...
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $json='{"response":[{"id":15001,"first_name":"Елена","last_name":"Дроздова","nickname":""},{"id":15002,"first_name":"Алина","last_name":"Талипова","deactivated":"deleted"},{"id":15003,"first_name":"Натали","last_name":"Соснина","nickname":"","photo_id":"15003_303466587"},{"id":15004,"first_name":"Сердар","last_name":"Курбанов","nickname":""},{"id":15005,"first_name":"Ольга","last_name":"Писаренко","nickname":"","photo_id":"15005_358280295"}]}';
  4. $k=json_decode($json,1);
  5. foreach($k['response'] as $data){
  6. echo "$data[id]::$data[first_name]<br>";
  7. }
  8. ?>
  9.  

Подскажите пожалуйста. Выдает ошибку на локальном сервере Denwer: Warning: Invalid argument supplied for foreach(), а на обычном сервере работает нормально. В чем проблема?
 
 Top
Sail
Отправлено: 17 Июня, 2015 - 08:57:48
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


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




BEUJ пишет:
Выдает ошибку на локальном сервере Denwer: Warning: Invalid argument supplied for foreach(), а на обычном сервере работает нормально. В чем проблема?

и смотрите в описании функции json_decode(), в каких случаях она возвращает null.
(Добавление)
А на "обычном сервере" работает нормально потому, что там - UTF8, а локально у вас используется другая кодировка, которую json-функции без не переваривают.
 
 Top
BEUJ
Отправлено: 17 Июня, 2015 - 15:00:38
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2015  


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




Sail пишет:
BEUJ пишет:
Выдает ошибку на локальном сервере Denwer: Warning: Invalid argument supplied for foreach(), а на обычном сервере работает нормально. В чем проблема?

и смотрите в описании функции json_decode(), в каких случаях она возвращает null.
(Добавление)
А на "обычном сервере" работает нормально потому, что там - UTF8, а локально у вас используется другая кодировка, которую json-функции без не переваривают.

Выставил на кодировку в Open Server UTF-8
Нажмите для увеличения

Не работает все равно

(Отредактировано автором: 17 Июня, 2015 - 15:01:16)

 
 Top
Sail
Отправлено: 17 Июня, 2015 - 15:37:20
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


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




BEUJ пишет:
Не работает все равно

Ну, раз уж... то сделайте так:
PHP:
скопировать код в буфер обмена
  1. header("Content-Type: text/html; charset=utf8");
  2. $str = '{"response":[{"id":15001,"first_name":"Елена","last_name":"Дроздова","nickname":""},{"id":15002,"first_name":"Алина","last_name":"Талипова","deactivated":"deleted"},{"id":15003,"first_name":"Натали","last_name":"Соснина","nickname":"","photo_id":"15003_303466587"},{"id":15004,"first_name":"Сердар","last_name":"Курбанов","nickname":""},{"id":15005,"first_name":"Ольга","last_name":"Писаренко","nickname":"","photo_id":"15005_358280295"}]}';
  3. $json = iconv('cp1251', 'utf-8', $str);
  4. $k=json_decode($json,1);
  5. foreach($k['response'] as $data){
  6.     echo "{$data['id']}::{$data['first_name']}<br>";
  7. }

(Добавление)
PS: об используемой кодировке исходников ведь тоже надо помнить...
 
 Top
BEUJ
Отправлено: 17 Июня, 2015 - 16:10:24
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2015  


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




Sail пишет:
BEUJ пишет:
Не работает все равно

Ну, раз уж... то сделайте так:
PHP:
скопировать код в буфер обмена
  1. header("Content-Type: text/html; charset=utf8");
  2. $str = '{"response":[{"id":15001,"first_name":"Елена","last_name":"Дроздова","nickname":""},{"id":15002,"first_name":"Алина","last_name":"Талипова","deactivated":"deleted"},{"id":15003,"first_name":"Натали","last_name":"Соснина","nickname":"","photo_id":"15003_303466587"},{"id":15004,"first_name":"Сердар","last_name":"Курбанов","nickname":""},{"id":15005,"first_name":"Ольга","last_name":"Писаренко","nickname":"","photo_id":"15005_358280295"}]}';
  3. $json = iconv('cp1251', 'utf-8', $str);
  4. $k=json_decode($json,1);
  5. foreach($k['response'] as $data){
  6.     echo "{$data['id']}::{$data['first_name']}<br>";
  7. }

(Добавление)
PS: об используемой кодировке исходников ведь тоже надо помнить...

Спасибо большоеУлыбка Заработало! А как в этот скрипт кодировку вставить?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $matches=array(
  3. "Алина",
  4. "Лена",
  5. "Маша",
  6. "Елена",
  7. "Юлия");
  8. $json=file_get_contents($_SERVER['DOCUMENT_ROOT']."/15001_1000.json");
  9. $k=json_decode($json,1);
  10. foreach($k['response'] as $data){
  11. if(in_array($data['first_name'], $matches)) {
  12. echo "$data[id]::$data[first_name]<br>";
  13. }
  14. }
  15. ?>
  16.  
 
 Top
Sail
Отправлено: 17 Июня, 2015 - 16:29:33
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


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




BEUJ пишет:
А как в этот скрипт кодировку вставить?

В какой кодировке сохранён файл с данными, подгружаемыми в переменную $json?
В какой кодировке на "обычном сервере" сохранён файл скрипта?
В какой кодировке на локальном сервере сохранён файл скрипта?
Какое значение параметра default_charset выдаёт phpinfo() (в обоих случаях)?
 
 Top
BEUJ
Отправлено: 17 Июня, 2015 - 16:40:41
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2015  


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




Sail пишет:
BEUJ пишет:
А как в этот скрипт кодировку вставить?

В какой кодировке сохранён файл с данными, подгружаемыми в переменную $json?
В какой кодировке на "обычном сервере" сохранён файл скрипта?
В какой кодировке на локальном сервере сохранён файл скрипта?
Какое значение параметра default_charset выдаёт phpinfo() (в обоих случаях)?

1. Не знаю. Там просто код, приведенный в предыдущем сообщении.
2 и 3 везде в UTF-8
4. Не понял что это такое
 
 Top
Sail
Отправлено: 17 Июня, 2015 - 16:43:50
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


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




BEUJТогда посмотрите, что получится, если преобразовать переменную $json с текстом "неизвестной" кодировки...
После 8-й строки вставьте:
PHP:
скопировать код в буфер обмена
  1. $json = iconv('cp1251', 'utf-8', $json);
 
 Top
BEUJ
Отправлено: 17 Июня, 2015 - 16:46:50
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2015  


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




Sail пишет:
BEUJТогда посмотрите, что получится, если преобразовать переменную $json с текстом "неизвестной" кодировки...
После 8-й строки вставьте:
PHP:
скопировать код в буфер обмена
  1. $json = iconv('cp1251', 'utf-8', $json);

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $matches=array(
  3. "Алина",
  4. "Лена",
  5. "Маша",
  6. "Елена",
  7. "Юлия");
  8. $json=file_get_contents($_SERVER['DOCUMENT_ROOT']."/10001_1000.json");
  9. $json = iconv('cp1251', 'utf-8', $json);
  10. $k=json_decode($json,1);
  11. foreach($k['response'] as $data){
  12. if(in_array($data['first_name'], $matches)) {
  13. echo "$data[id]::$data[first_name]<br>";
  14. }
  15. }
  16. ?>

Вот так? Ошибку выдает

(Отредактировано автором: 17 Июня, 2015 - 16:50:40)

 
 Top
Sail
Отправлено: 17 Июня, 2015 - 16:53:42
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


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




BEUJ пишет:
Вот так? Ошибку выдает

Какую ошибку?
 
 Top
BEUJ
Отправлено: 17 Июня, 2015 - 16:55:54
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2015  


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




Sail пишет:
BEUJ пишет:
Вот так? Ошибку выдает

Какую ошибку?

Warning: Invalid argument supplied for foreach(),
 
 Top
Sail
Отправлено: 17 Июня, 2015 - 17:03:29
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


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




BEUJ пишет:
Warning: Invalid argument supplied for foreach(),

Добавьте второй строкой header("Content-Type: text/html; charset=utf8");
(Добавление)
и замените
PHP:
скопировать код в буфер обмена
  1. echo "$data[id]::$data[first_name]<br>";
  2. //на
  3. echo "{$data['id']}::{$data['first_name']}<br>";
 
 Top
BEUJ
Отправлено: 17 Июня, 2015 - 17:05:42
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июнь 2015  


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




Sail пишет:
BEUJ пишет:
Warning: Invalid argument supplied for foreach(),

Добавьте второй строкой header("Content-Type: text/html; charset=utf8");
(Добавление)
и замените
PHP:
скопировать код в буфер обмена
  1. echo "$data[id]::$data[first_name]<br>";
  2. //на
  3. echo "{$data['id']}::{$data['first_name']}<br>";

Такая же ошибка
 
 Top
Sail
Отправлено: 17 Июня, 2015 - 17:07:21
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


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




BEUJ пишет:
Такая же ошибка

А что покажет после 8-й строки var_dump($json);?
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB