Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用嵌套函数(如time()header()等)时发生php致命错误_Php_Fatal Error - Fatal编程技术网

调用嵌套函数(如time()header()等)时发生php致命错误

调用嵌套函数(如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

今天我遇到了上面的一个问题:

[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');
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的理智编辑器。很难想象这条规则会有例外。我只是想补充一点,我不是有意暗示应该这样做。只是为了检查并确保现有的文件没有这种情况,这样它们就会改变预期的行为。