Был скрипт парсер, подгружал посты со стороннего сайта. Все работало пока не перехал на другой хостинг. (Версия PHP везде одинаковая 7.0.) Парсер работает но под половиной постов выскакивает это сообщение
Warning: Invalid argument supplied for foreach() in /var/www/u0000000/data/www/test.ru/fars.php on line 83
И остается пустым (Без информации) поле first_name. Хотя информация есть на стороннем сайте. Скажите в чем может быть проблема?
Часть кода с 80 строки:
function user($id){
$url = 'https://api.vk.com/method/users.get?user_ids='.$id.'&version=5.73&fields=city,photo_100&access_token=asdfasdf';
$result = file_get_contents ($url);
$b = json_decode($result, true);
$result = file_get_contents ($url);
$b = json_decode($result, true);
// Перебирает массив засовывает в переменную value.
foreach($b['response'] as $value) :
endforeach;
$first_name = $value['first_name'];
$avatar = $value['photo_100'];
// Достает город.
if ($value['city'] == 113) {
$city = 'Москва';
}elseif ($value['city'] == 4433) {
$city = 'СПБ';
}elseif ($value['city'] == 889) {
$city = 'Воронеж';
} else {
$city = 'Город не определен';
}
//возвращает ответ из переменной $b
return compact('first_name','city','avatar');
}
Не много переделал Ваш код, на локальном сервере все работает
function user($id){
$id = ;
$token = '';
$v = '5.80';
$request = [
'user_ids' => $id,
'fields' => 'city,photo_100',
'access_token' => $token,
'v' => $v
];
$rez = json_decode(file_get_contents('https://api.vk.com/method/users.get?'.http_build_query($request)));
if($rez->response) {
foreach ($rez->response as $res) {
$first_name = ($res->first_name) ?: '';
$avatar = ($res->photo_100) ?: '';
$city = ($res->city->id) ?: '';
}
}
return compact('first_name','city','avatar');
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости