【问题标题】:php fatal error when call to a nested function such as time() header() etcphp 调用嵌套函数时出现致命错误,例如 time() header() 等
【发布时间】:2017-11-03 12:01:38
【问题描述】:

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

[03-Nov-2017 19:29:02 Asia/Shanghai] PHP 致命错误:调用 第 5 行 /www/xxxx/api/login.php 中的未定义函数 header()

[03-Nov-2017 19:27:37 Asia/Shanghai] PHP 致命错误:调用 /www/xxxx/index.php 第 9 行中未定义的函数 dirname()

...

我找不到原因和解决方案。任何人都可以帮助我,谢谢。

添加我的代码。

<?php
header('Content-type:text/html; charset=utf8');
include_once dirname(__FILE__). '/global.inc.php';

echo 'HELLO WORLD';

这个问题有时会在我的在线网站上发生并且持续一天。 我能做的是每1小时重新加载一次。

谁知道怎么解决??? THXTHX


更新: 服务器信息添加:Nginx 服务器,CentOS 版本 6.3。 PHP 版本 5.4.41

最让我困惑的是,这个问题突然发生在我的在线网站上,没有发布任何更改。

【问题讨论】:

  • 能否附上一些代码!我们会尽快解决它!
  • 你需要出示你的代码
  • 首先检查这个链接。它可能会帮助你。 stackoverflow.com/questions/7186926/…
  • 把代码也贴出来
  • 有时会出现,我重新加载php-fpm后会好的,大约40~50分钟再次出现。

标签: php fatal-error


【解决方案1】:

一个非常疯狂的猜测,但这些错误可能会欺骗你。

[03-Nov-2017 19:29:02 Asia/Shanghai] PHP 致命错误:调用 第 5 行 /www/xxxx/api/login.php 中的未定义函数 header()

[03-Nov-2017 19:27:37 Asia/Shanghai] PHP 致命错误:调用 /www/xxxx/index.php 第 9 行中未定义的函数 dirname()

如果header()dirname() 包含一个不可见或以某种方式从您的日志文件中删除的前导Unicode 字符怎么办?它们可能看起来像内置的 PHP 函数,但您的代码可能包含编译形式或运行时的特殊字符。换句话说,header() 可能不是你想象的那样。尽管它在日志中看起来是这样的。

我建议快速回顾一下以下内容:

【讨论】:

  • 看在上帝的份上,不要使用声明(编码),只需使用使用 utf8 的理智编辑器。 很难想象这条规则的例外情况。
  • 同意。只是想补充一点,我并不是要暗示应该这样做。只是为了检查并确保现有文件没有这个,这样它们会改变预期的行为。
猜你喜欢
  • 2019-02-16
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多