升级本机在PHP中实现的Olson tz数据库
我正在开发一个大量使用时区的站点,这些站点需要处于最新tz信息的最前沿(我已经通过
tz mailing list获得).我不知道的是如何在我的开发机器和我的Web主机上运行PHP安装,以使用更新的tz数据而不是已经存在的旧数据.这并不像升级PHP那么简单,因为即使是最新版本的PHP也不一定会在任何给定时间拥有绝对最新的tz数据.
有人指出,在pecl中的timezonedb package会让我看到该软件包的最新官方版本,但是如果我需要更进一步以获得可能尚未正式发布的更新的“前沿”呢?我很确定新的tz数据必须用zic编译(在tzcode中分发),并将结果二进制文件赋予pecl.我真的不知道所有这一切,所以我们将非常感谢各个步骤的见解/链接. 如何在(1)XAMPP开发机器和/或(2)典型的共享托管服务上升级这个由PHP实例本机使用的Olson数据库……同时尽可能少地跳过箍和管理障碍?是否存在共享托管环境可能使人们更难以了解的任何细节?拥有多个数据副本是否可行,以便如果某个人以某种方式搞砸了它们,很容易撤消变更? 由于变更有时并未及时正式发布以使其生效,我正在寻找一种能够自行任意改变这种变化的方法.我也有兴趣探索从“快速/简单”到“严谨/最佳”的一系列可能解决方案的潜在权衡. 解决方法
最终答案
上面的评论提供了比这更好的答案 – 看看PECL包 我已将此转换为社区Wiki. 一项调查 来自诸如php-5.3.8.tar.bz2的包的分布式源包含ext / date / lib目录中的Olson数据库的翻译和文件timezonedb.h,timezonemap.h,fallbackmap.h.这意味着PHP开发系统中的某些代码可以从Olson数据库的发行版生成此信息,但默认情况下不会分发.此外,它不是作为SVN的一部分自然分布的;我从版本321876中提取了PHP 5.3源代码,并且ext / date目录中没有任何内容可以帮助(只是生成的文件). 因此,向PHP维护者询问如何执行此操作可能是合适的;它当然应该是可能的,它应该是自动化的(如果他们没有自动化将是愚蠢的).但我不清楚PHP维护者以外的人可以告诉他们如何做到这一点. NEWS文件中的评论表明Derick Rethans可能是一个很好的联系人 – 他将数据库更新为Olson 2010c(2010.3).您可以在源目录顶层的run-tests.php文件中找到他在PHP的电子邮件地址;你可以在ext / date / lib目录的源代码中找到另一个电子邮件地址. Derick Rethans提供了用于从Olson数据库生成文件timezonedb.h的转换工具包: http://svn.xdebug.org/cgi-bin/viewvc.cgi/timelib/trunk/zones/?root=php 截至2016-12-09,上面的链接是404,并且Internet Archive上的WayBack Machine无法提供帮助,因为它不允许通过robots.txt文件进行搜索. 但是,谷歌搜索’php timelib’发现: > https://github.com/derickr/timelib 这几乎肯定是替代品. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |