get_headers yii2 = php_network_getaddresses: getaddrinfo failed: Name or service not known

Menro

web, seo, email, hack
Регистрация
27 Янв 2008
Сообщения
689
Реакции
138
Всем привет.
Пытаюсь кодить на yii2. Опыта мало.
Столкнулся с проблемой, никак не могу понять в чем дело.

Написал вот такой метод:

PHP:
public function actionCheck()  {
     
        $sites_id = Yii::$app->request->post('selection');
     
        if ($sites_id) {
        foreach ($sites_id as $site_id ) {
        $status = new Projects();
        $status = Projects::findOne($site_id);
        $url = $status->attributes['url'];
        $headers = get_headers($url);
        print_r($headers);
     
         }
        }
   
       return $this->redirect(['index']);
       }

Собственно смысл примерно такой. Получаю URL'ы из базы данных, прохожу циклом и пытаюсь вывести результаты выполнения функции get_headers(). Но получаю ошибку: php_network_getaddresses: getaddrinfo failed: Name or service not known.

Переменная $url из базы равна = Для просмотра ссылки Войди или Зарегистрируйся

При этом, если просто вручную в коде задаю: $url = 'Для просмотра ссылки Войди или Зарегистрируйся - всё работает.
Не понимаю хоть убей, что не так. Может кодировка или ещё что, почему значение из базы не резолвится, а точно такое же значение из кода прекрасно работает?
 
Весьма вероятно что в переменную из БД попали лишние символы типа переноса строки
 
Во первых можно заменить

PHP:
        $url = $status->attributes['url'];

на

PHP:
$url = $status->url;

А во вторых, сделайте var_dump() переменной URL, можем у вас там пробелы попали в начало строки или как Minor сказал, буквы не англоязычные
 
Назад
Сверху