Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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
升级本机在PHP中实现的Olson tz数据库_Php_Timezone_Xampp_Shared Hosting_Pecl - Fatal编程技术网

升级本机在PHP中实现的Olson tz数据库

升级本机在PHP中实现的Olson tz数据库,php,timezone,xampp,shared-hosting,pecl,Php,Timezone,Xampp,Shared Hosting,Pecl,我在一个网站上工作,该网站大量使用时区,而时区需要处于可用的最新tz绝对信息的最前沿(我已经通过网站获得)。我不知道的是如何让PHP安装在我的开发机器和web主机上运行,以使用更多最新的tz数据,而不是它们上已有的旧数据这并不像升级PHP那么简单,因为即使是最新版本的PHP在任何给定时间都不一定拥有绝对最新的tz数据 有人指出,inpecl将让我了解该软件包的最新官方版本,但如果我需要进一步了解可能尚未正式发布的更新的“前沿”,该怎么办?我很确定,较新的tz数据必须使用zic(在tzcode中分

我在一个网站上工作,该网站大量使用时区,而时区需要处于可用的最新tz绝对信息的最前沿(我已经通过网站获得)。我不知道的是如何让PHP安装在我的开发机器和web主机上运行,以使用更多最新的tz数据,而不是它们上已有的旧数据这并不像升级PHP那么简单,因为即使是最新版本的PHP在任何给定时间都不一定拥有绝对最新的tz数据

有人指出,in
pecl
将让我了解该软件包的最新官方版本,但如果我需要进一步了解可能尚未正式发布的更新的“前沿”,该怎么办?我很确定,较新的tz数据必须使用
zic
(在tzcode中分发)进行编译,并将生成的二进制文件提供给
pecl
。我真的不知道这意味着什么,因此希望能有针对各个步骤的见解/链接

如何升级该Olson数据库,该数据库由(1)XAMPP开发机器和/或(2)一个典型的共享托管服务上的PHP实例本机使用。。。同时尽可能少地跨越障碍和管理障碍?共享托管环境是否有哪些细节可能会让人感到更加困难?有多个数据副本存在,以便在某个副本出错时可以轻松撤消更改,这是否可行

由于更改有时不能及时正式发布以使其生效,因此我正在寻找一种能够自行任意进行这些更改的方法。我还对探索从“快速/简单”到“严格/最佳”的一系列可能解决方案的潜在权衡感兴趣。

最终答案 上面的评论给出了比这更好的答案——看看PECL包

我已将其转换为社区维基


调查 来自包(如
php-5.3.8.tar.bz2
的分布式源代码包含
ext/date/lib
目录中奥尔森数据库的翻译,以及文件
timezonedb.h
timezonemap.h
fallbackmap.h
。这意味着PHP开发系统中的某个地方有代码可以从Olson数据库的发行版生成此信息,但默认情况下不会分发此信息。此外,它不是作为SVN的一部分不言而喻地分布的;我提取了321876版本的PHP5.3源代码,
ext/date
目录没有任何帮助(只包含生成的文件)

因此,询问PHP维护人员如何操作可能是合适的;这当然应该是可能的,而且应该是自动化的(如果他们不让它自动化,那就太傻了)。但我不清楚PHP维护人员之外的人是否能告诉我如何做

新闻文件中的评论表明德里克·雷特汉斯可能是一个很好的联系人——他将数据库更新为奥尔森2010c(2010.3)。您可以在源代码目录顶层的
runtests.PHP
文件中的PHP中找到他的电子邮件地址;您可以在
ext/date/lib
目录的源代码中找到另一个电子邮件地址

Derick Rethans提供了用于从Olson数据库生成文件
timezonedb.h
的转换工具包,如下所示:

截至2016年12月9日,上述链接为404,互联网档案馆的回程机器无法帮助,因为它不允许通过
robots.txt
文件进行搜索

然而,谷歌搜索“php timelib”发现:


这几乎可以肯定是替代品。

安装pecl软件包。然后只更新pecl扩展名。看那看起来不错;我将编辑我的问题。但是,如果我需要比
pecl
允许的更细粒度的控制,例如进行尚未正式发布的更改,该怎么办?请自然地帮助使用pecl包,以便及时发布。只要在正确的地方参与,这就是我们使用自由软件的原因。这就是这个包裹的目的。看起来这是你的用例;我有地方可以参与!!!!我也已经在tz讨论列表中了,但有时会有影响当前时间戳的更新,这些更新甚至没有及时作为tz更新发布,更不用说作为
pecl
包发布了。显然,参与其中将帮助我了解编译/安装过程的工作原理,并允许我在本地安装自己的“beta”版本(如果我真的需要)。如果有人(也许是后来的我)想尝试解决公共利益的技术问题,我会保留这个问题,因为似乎缺乏这样的资源。嗨,虽然用于翻译奥尔森时区数据库以生成时区*.h文件的工具默认情况下不是用PHP分发的,你仍然可以在这里找到它们:因为我在写答案时把它标记为CW,AFAICT。我的意思是,它不应该是。社区维基应该保留给产生大量编辑和/或投票的帖子/问题,这样作者就不会获得不公平的声誉。这里不是这样。我建议删除CW状态。到Rethans帖子的链接已断开-。-@user2070775:谢谢提醒。我已经用新的信息更新了答案,告诉你从现在起可以(可能)从哪里获得代码。