首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP的y2k_compliance php.ini设置做了什么?

PHP的y2k_compliance php.ini设置做了什么?
EN

Stack Overflow用户
提问于 2019-08-10 20:45:10
回答 2查看 662关注 0票数 5

这个问题纯粹是为了学术目的,因为PHP5.4中删除了这个设置,2000年已经过去了,但是有谁知道y2k-compliance吐温设置做了什么呢?

PHP文档并没有告诉你太多:

y2k_compliance (布尔型) 强制执行2000年问题(将导致不兼容浏览器的问题)

所以,没有多少有用的信息!

在谷歌搜索中,我发现的唯一附加信息是此页,它主要是重复上面的内容或删除设置的引用,其中声明:

一些用户可能正在使用过时的、不兼容的浏览器。如果出于某种奇怪的原因,您确信您的站点的许多用户都属于这个组,那么禁用y2k_compliance参数;否则,应该启用它。 y2k_compliance = On 指定是否应使PHP脚本兼容2000年。使PHP Y2K兼容(通过将此指令设置为On)将导致非Y2K兼容浏览器的问题。

更多的信息,但仍然是一个非常高层次的描述.

我一直无法找到任何技术信息,该设置试图解决的问题,或它如何解决它。

那么,如果禁用了y2k-compliance标志,PHP有什么不同的做法呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-10 21:03:10

那不是过去的爆炸吗?我至少有10年没见过这个了。

这种行为很简单,而且实际上很容易跟踪回源代码。它实际上只影响PHP引擎的一部分。

问题的症结很简单。RFC 850 (1983)规定,所有日期格式都应具有日期的最后两位数字。RFC 822改变了这一点。然而,这并不意味着所有浏览器都会神奇地更新,甚至不知道如何处理。

由于这个原因,添加了这个标志,因此人们可以根据运行旧浏览器(当时)的用户数量随意设置旧格式还是新格式。

票数 5
EN

Stack Overflow用户

发布于 2019-08-10 21:01:39

不确定这是否有帮助,但我从PHP3中找到了一些旧的文档,这些文档更详细地描述了Y2K法规。正如预期的那样,它与处理两位数的年份格式有关.

来源::php.net/y2k.php 3

2000年顺应性与PHP 与Perl一样,PHP与您的铅笔一样兼容2000年。您需要担心的是用PHP编写的应用程序,而不是PHP本身。曲奇中的日期有问题。Netscape最初指定cookie的到期日期应该是2位数的年份格式。由于所有的y2k炒作,他们决定改变网景4和更高版本的这种行为。这并不意味着2位数的年份不符合y2k。例如,在Netscape中,两位数的年份"13“将被理解为2013年。所有浏览器都理解这种2位格式,因此这是PHP中的默认格式.一些y2k狂热者仍然坚持无论如何都不要使用2位数的年份,对于那些人来说,php3.ini文件中有一个y2k_compliance配置设置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57445567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档