butteff
@butteff
Раз в тысячу лет заправляю свитер в носки

Как сделать проверку у file_get_contents в yii2?

в Yii2 беру данные через file_get_contents с удаленной страницы.
Если сервер недоступен или ссылка не верная, то yii2 выдает ошибку:

PHP Warning 'yii\base\ErrorException' with message 'file_get_contents(): failed to open stream: Connection refused'


Как сделать проверку, чтобы избежать этой ошибки? Т.е. как проверить ссылку?

Ссылка с апач авторизацией, если это важно. Кусок кода:
$context = stream_context_create(array(
			    'http' => array(
			        'header'  => "Authorization: Basic " . base64_encode("$username:$password")
			    )
			));
			
			$data = file_get_contents($url, false, $context);
  • Вопрос задан
  • 1526 просмотров
Решения вопроса 2
mhthnz
@mhthnz
PHP, YII2, Golang, Linux
$context = stream_context_create(array(
          'http' => array(
              'header'  => "Authorization: Basic " . base64_encode("$username:$password")
          )
      ));
      
      $data = @file_get_contents($url, false, $context);
      if ($data !== false) {
          //ok
      } else {
          //bad
      }
Ответ написан
IIISpikerIII
@IIISpikerIII
можете воспользоваться стандартной PHP функцией get_headers, если пришел заголовок 200 тогда все ок
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы