复制代码:

error_reporting(-1);

ini_set('display_errors', 1);
ini_set('error_log', 'log/log');        
ini_set('html_errors', 0);

// trigger an error
echo $test;

如果log/log是可写的,并且您未在php.ini设置date.timezone或未使用date_default_timezone_set ,则将看到此错误:

警告:main():依靠系统的时区设置并不安全。 需要使用date.timezone设置或date_default_timezone_set()函数。 如果您使用了这些方法中的任何一种,并且仍然收到此警告,则很可能您拼写了时区标识符。 我们在第10行的C:\\ srv \\ www \\ test.php中将“欧洲/巴黎”选择为“ 1.0 /无DST”

注意:未定义的变量:在第10行的C:\\ srv \\ www \\ test.php中进行测试

这是非常有用的。 在我的情况下,第10行是echo $test; PHP并没有提供有关设置错误记录器的任何信息。

您可以在大型项目上花费大量时间指出这一点。

如果log/log不可写,则只会看到未定义的变量通知。

我认为PHP可以将系统时区设置用于日志(这很明显)。

ist是一个错误,应该报告给PHP团队吗? 顺便说一句。 我使用PHP 5.3.8(不是上一个快照)

===============>>#1 票数:1 已采纳

如果您的日志是可写的,则通知将触发包含格式化时间戳记的日志行。 此时间戳显示在您的服务器时区中。

现在看一下警告(没有错误)。 它告诉“我们改为将'欧洲/巴黎'选为'1.0 /无夏令时'”。 PHP读取了配置的服务器时区(从/ etc / timezone ??)并得到“ 1.0 / no DST”。 没有可用的时区信息(适用于php)。 相反,它使用“欧洲/巴黎”作为备用。

如果日志文件不可写,则不会发出警告,因为不会生成格式化的时间字符串。

我不知道“ 1.0 / no DST”是否是有效的时区格式,但是我不会更改您的/ etc / timezone中的任何内容。

所以请不要提交错误;)

  ask by Buddy translate from so

未解决问题?本站智能推荐: