Сегодня я встретил проблему выше:
[03-Nov-2017 19:29:02 Азия / Шанхай] Неустранимая ошибка PHP: вызов
неопределенный заголовок функции () в /www/xxxx/api/login.php в строке 5 [03-Nov-2017 19:27:37 Asia / Shanghai] PHP Неустранимая ошибка: вызов
неопределенная функция dirname () в /www/xxxx/index.php в строке 9
…
Я не могу найти причину и решение. кто-нибудь помогает мне, спасибо.
добавить мой код
<?php
header('Content-type:text/html; charset=utf8');
include_once dirname(__FILE__). '/global.inc.php';
echo 'HELLO WORLD';
эта проблема случается иногда и длиться в течение одного дня, на моем веб-сайте.
что я могу сделать, это перезагрузить каждый 1 час.
кто-нибудь знает как это решить ???
THXTHX
ОБНОВИТЬ:
Добавлена информация о сервере: Nginx Server, выпуск CentOS 6.3. Версия PHP 5.4.41
Что меня больше всего смущает, так это то, что эта проблема внезапно возникла на моем онлайн-сайте без изменений.
Действительно дикое предположение, но эти ошибки могут вас обмануть.
[03-Nov-2017 19:29:02 Азия / Шанхай] Неустранимая ошибка PHP: вызов
неопределенный заголовок функции () в /www/xxxx/api/login.php в строке 5 [03-Nov-2017 19:27:37 Asia / Shanghai] PHP Неустранимая ошибка: вызов
неопределенная функция dirname () в /www/xxxx/index.php в строке 9
Что, если header()
а также dirname()
содержит лидирующий символ Unicode, который невидим или был каким-то образом удален из ваших файлов журнала? Они могут выглядеть как встроенные функции PHP, но, возможно, ваш код содержит специальные символы либо в скомпилированном виде, либо во время выполнения. Другими словами, header()
может быть не то, что вы думаете. Хотя это выглядит так в журнале.
Я предлагаю быстрый обзор следующего:
Кто пишет код и в каком редакторе? Их редактор добавляет BOM (Маркер порядка байтов) в начало каждого файла? Если так, не делай этого. Увидеть: Подпись спецификации UTF-8 в файлах PHP
Ваши PHP-файлы начинаются с declare(encoding=...)
линия? Если это так, это правильно; то есть соответствует ли оно кодировке редактора? Лучше исключить это.
Является zend.multibyte
включен в php.ini? Если да, то имеет ли это значение для включения или выключения? Увидеть: http://php.net/manual/en/ini.core.php#ini.zend.multibyte
Является zend.script_encoding
установить в php.ini? Если да, то улучшает ли это ситуацию? Увидеть: http://php.net/manual/en/ini.core.php#ini.zend.script-encoding
Является zend.detect-unicode
установить в php.ini? Если это так, то может ли что-то измениться? Увидеть: http://php.net/manual/en/ini.core.php#ini.zend.detect-unicode
Вы используете расширение OPcache? например, APC, Zend Optimizer, более новый встроенный OPcache? Если да, то они становятся поврежденными при мониторинге?
Других решений пока нет …