Почему сообщения об ошибках PHP содержат ссылку на имя имени функции в их представлении HTML?
Почему сообщения об ошибках PHP содержат ссылку, такую как эта ошибка:
<b>Warning</b>: preg_match_all() [<a href='function.preg-match-all'>function.preg-match-all</a>]: Delimiter must not be alphanumeric or backslash in <b>/home/www/test.php</b> on line <b>93</b><br />
с помощью этой ссылки?:
[<a href='function.preg-match-all'>function.preg-match-all</a>]
Предполагается ли, что PHP будет настроен на размещение http://www.php.net/
перед этим URL-адресом? Или что у человека будет копия документации PHP на их веб-сервере и что, щелкнув по этой ссылке, они смогут получить доступ к информации о функции?
Это просто то, что мне было интересно, поскольку кажется, что, если ошибка не возникла на php.net, такая ссылка будет бесполезной.
Я знаю, что можно настроить пользовательские обработчики ошибок и т.д. Мой вопрос: почему это поведение по умолчанию PHP?
Спасибо.
Ответы
Ответ 1
Он действительно должен ссылаться на php.net, но большинство конфигураций по умолчанию отключено. И вы должны перенаправить его на местную ручную копию. (У Mine есть /phpmanual/, где, вероятно, будет установлен пакет php-manual, и я считаю, что диспетчер пакетов раскомментировал бы этот вариант.)
Для его установки можно использовать опцию docref_root
в php.ini
.
Ответ 2
Вы можете установить docref_root для добавления URI. он предназначен для использования с локальной копией руководства, но может использоваться с внешним.
Чтобы полностью отключить html-ошибки, установите html_errors на 0.