Ошибки анализа не отображаются

Я хочу, чтобы PHP отображал ошибки разбора на экране. Вместо этого я получаю пустую страницу. Ничто не записывается в файл журнала ошибок сервера.

Моя настройка: PHP5.2.9 / IIS 6 (не Apache!).

Мой PHP.INI:

error_reporting=E_STRICT display_errors = On display_startup_errors = On log_errors = On error_log = "C:\Program Files\Zend\ZendServer\logs\php_error.log" 

Как заставить синтаксический анализ или фатальные ошибки регистрироваться или отображаться на экране?

Спасибо, Темури

ОБНОВЛЕНИЕ : после игры с разными переключателями это похоже на специфическую проблему IIS. ЛЮБЫЕ ИДЕИ НАРОДЫ?

    Установка уровня ошибки в самом файле php не решает проблему здесь, потому что сам файл не может быть проанализирован !!

    Вам нужно изменить строку error_reporting в php.ini следующим образом:

     error_reporting = E_ALL 

    BTW: В файле php.ini есть несколько примеров того, что делать, чтобы отображать типы сообщений об ошибках.

    Удачи,

    mcemoz

    E_STRICT не включен в E_ALL (до PHP 6). Если вы хотите продолжать получать E_STRICT

    В php.ini:

     error_reporting = E_ALL | E_STRICT 

    Во время выполнения:

     error_reporting( E_ALL | E_STRICT ); 

    Вам нужно будет установить уровень сообщений об ошибках (и display_errors ) в php.ini, чтобы увидеть синтаксические ошибки. Если PHP встречает синтаксическую ошибку, время выполнения не выполняется, поэтому настройка во время выполнения не будет работать. (См. Ссылку display_errors .)

    Apache не всегда хочет сообщать об ошибках синтаксического анализа. Из командной строки запустите

     php -l <file> 

    Параметр -l указывает PHP на проверку синтаксиса файла. См. Справочную страницу.

    Вы можете проверить синтаксис сценария с помощью этой команды в терминале:

     php -l path/to/file.php 

    Лично я добавил эту строку в файл ~/.bash_profile чтобы я мог легко запустить php -l для всех файлов в текущем рабочем каталоге:

     phpl() { for i in *.php; do php -l $i; done } 

    Если вы действительно хардкор, вы даже можете запустить свое приложение из командной строки. У вас будет гораздо больше шансов увидеть ошибки во время компиляции, и это просто классно.

    Вы можете использовать переменную $ argv для получения первого аргумента $ argv [1], а затем использовать это как запрос.

     <?php // show those errors! error_reporting(E_ALL | E_STRICT); ini_set('display_errors', 1); // simulate a web server request $request = '/' . isset($argv[1]) ? ltrim($argv[1], '/') : '/'; $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'] = $request; 

    Затем вы можете запустить скрипт через командную строку. Это будет эквивалент посещения: your-webapp.com/request/uri/here

     php /path/to/script.php request/uri/here 

    Вот более полный пример для запуска CodeIgniter через командную строку. Он должен работать и для многих других рамок: http://phpstarter.net/2008/12/run-codeigniter-from-the-command-line-ssh/

    Как предлагает Расмус Лердорф, всегда используйте error_reporting (-1) на сервере разработки.

    Re: Пустой экран смерти смерти php, я обнаружил, что настройка

    php_value error_reporting "E_ALL" или php_value error_reporting 8192

    в .htaccess на моей Windows 7, Wampserver w / apache 2.2.4 и php 5.3.13 – это надежные способы получить пустой экран ошибок php – сегодня, 3 июня 2014. Эти строки htaccess DO устанавливают значение желаний в phpinfo ( ), но отображение ошибок происходит только тогда, когда строка закомментирована (не используется) в htaccess.

    НО … в следующую минуту я обнаруживаю, что

    php_value error_reporting 8191

    Устанавливает значение phpinfo () И также позволяет отображать сообщения об ошибках в браузере! D'о! Это должно быть целое число, а также, по-видимому, определенное или действительное целое число, а не просто достаточно большое целое число!

    Если вы используете Zend Framework (v1) и используете Autoloader, следующий код предотвратит отображение ошибок анализа:

    self::$Autoloader->suppressNotFoundWarnings(true);

    Дополнительную информацию см. В следующем ответе:

    Отображать ошибки php при использовании Zend framework

    Попробуй это.

     error_reporting(E_ALL); ini_set("display_errors", 1);