调用嵌套函数(如time()header()等)时发生php致命错误
今天我遇到了上面的一个问题: [2017年11月3日19:29:02亚洲/上海]PHP致命错误:呼叫 第5行/www/xxxx/api/login.php中未定义的函数头() [2017年11月3日19:27:37亚洲/上海]PHP致命错误:呼叫 第9行/www/xxxx/index.php中未定义的函数dirname() 我找不到原因和解决办法。有人帮我吗,谢谢 添加我的代码调用嵌套函数(如time()header()等)时发生php致命错误,php,fatal-error,Php,Fatal Error,今天我遇到了上面的一个问题: [2017年11月3日19:29:02亚洲/上海]PHP致命错误:呼叫 第5行/www/xxxx/api/login.php中未定义的函数头() [2017年11月3日19:27:37亚洲/上海]PHP致命错误:呼叫 第9行/www/xxxx/index.php中未定义的函数dirname() 我找不到原因和解决办法。有人帮我吗,谢谢 添加我的代码 <?php header('Content-type:text/html; charset=utf8'); i
<?php
header('Content-type:text/html; charset=utf8');
include_once dirname(__FILE__). '/global.inc.php';
echo 'HELLO WORLD';
这是一个非常疯狂的猜测,但这些错误可能会欺骗你
[2017年11月3日19:29:02亚洲/上海]PHP致命错误:呼叫
第5行/www/xxxx/api/login.php中未定义的函数头()
[2017年11月3日19:27:37亚洲/上海]PHP致命错误:呼叫
第9行/www/xxxx/index.php中未定义的函数dirname()
如果header()
和dirname()
包含一个不可见的前导unicode字符,或者以某种方式从日志文件中删除了该字符,该怎么办?它们可能看起来像内置的PHP函数,但您的代码可能包含编译形式或运行时的特殊字符。换句话说,header()
可能不是您想象的那样。即使在日志中看起来是这样
我建议快速回顾以下内容:
- 谁在编写代码,在哪个编辑器中?他们的编辑器是否在每个文件的开头添加了一个?如果是这样,就不要这样做。见:
- 您的PHP文件是否以一行开头?若有,是否正确;;i、 例如,它是否匹配编辑器的编码?最好排除这一点
- php.ini中是否启用了
zend.multibyte
?如果是这样,启用或禁用此功能是否有任何区别?见:
- php.ini中是否设置了
zend.script\u编码?如果是这样的话,改变这种情况是否会改善这种状况?见:
- php.ini中是否设置了
zend.detect unicode
?如果是这样的话,这种改变会有什么改善吗?见:
- 您正在运行OPcache扩展吗?e、 g、APC、Zend Optimizer、较新的内置OPcache?如果是这样,当您监视时,这些是否会损坏
请附上一些代码!我们将尽可能快地解决它!您需要显示您的代码首先检查此链接。这可能对你有帮助。发布代码有时也会发生,在我重新加载php fpm后会很好,大约40~50分钟又会发生。看在上帝的份上,不要使用declare(编码),而是使用一个使用utf8的理智编辑器。很难想象这条规则会有例外。我只是想补充一点,我不是有意暗示应该这样做。只是为了检查并确保现有的文件没有这种情况,这样它们就会改变预期的行为。