500 ошибка - file_get_contents или cURL

Тема в разделе "PHP", создана пользователем sarkis, 2 ноя 2016.

Метки:
Статус темы:
Закрыта.
Модераторы: latteo
  1. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    248
    Симпатии:
    35
    Доброго времени. Столкнулся с неприятностью :
    если в одну из функций попадает неактивный URL, то всегда получаю 500 Internal Server Error.
    Вывод ошибок стоит и в любых других случаях показывает ошибки , но не в этом!

    На другом моем серваке ошибка при запросе неактивного URL вылазит нормально

    Код:
    Warning: file_get_contents(http://несуществующий.ru/): failed to open stream: HTTP request failed! in /var/www/user/data/www/test/_test.php on line 5
    
    Не понимаю, где ковырять конфиги, чтобы ошибка была как в примере , а не 500 ? Спасибо
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.611
    Симпатии:
    1.539
  3. Casper_R

    Casper_R Создатель

    Регистр.:
    3 май 2007
    Сообщения:
    87
    Симпатии:
    31
    а если написать
    PHP:
    @file_get_contents(...
    мне кажется не выйдет, т.к. file_get_contents не выкидывает исключение, а только Warning

    P.S. еще можно нафиг вырубить варнинги в начале скрипта -
    PHP:
    error_reporting(E_ERROR E_PARSE);
     
    Последнее редактирование: 3 ноя 2016
  4. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    248
    Симпатии:
    35

    Код:
    try {
      echo file_get_contents("http://cat.hr0d0.ru");
    } catch (Exception $e) {
      echo $e->getMessage();
    }

    Ничего не изменилось по-сути =((

    Дополню инфу: если запросить несуществующий файл с существующего домена, то ошибка обрабатывается как нужно .

    - этот вариант не прокатывал изначально (
     
    Последнее редактирование модератором: 3 ноя 2016
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.611
    Симпатии:
    1.539
    Не рекомендую, рано или поздно вам придётся потратить очень много времени на поиск таких строк с подавлением ошибок.

    Точно, это я разбалованн фреймворками, где ошибки php переводятся в исключения - https://habrahabr.ru/post/30399/
     
  6. Casper_R

    Casper_R Создатель

    Регистр.:
    3 май 2007
    Сообщения:
    87
    Симпатии:
    31
    а
    PHP:
    error_reporting(E_ERROR E_PARSE);
    ?
     
  7. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    248
    Симпатии:
    35
    вообще никакого сдвига .. )) Просто вот думаю, как бы не пришлось переустанавливать сервак . Вроде норм работала раньще и перестала
     
  8. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.611
    Симпатии:
    1.539
    PHP:
    error_reporting(E_ALL);
    ini_set('display_errors'1);
     
  9. sarkis

    sarkis

    Регистр.:
    27 фев 2014
    Сообщения:
    248
    Симпатии:
    35
    этот вывод ошибок стоял изначально . Без каких-либо изменений
     

    Вложения:

  10. Casper_R

    Casper_R Создатель

    Регистр.:
    3 май 2007
    Сообщения:
    87
    Симпатии:
    31
    а если совсем пойти по тяжелой
    PHP:
    $ctx stream_context_create(array('http'=>
                    array(
                        
    'timeout' => 10,
                    )
                ));
                echo  @
    file_get_contents('http://cat.hr0d0.ru'false$ctx);
    ?
     
Статус темы:
Закрыта.