gpt4 book ai didi

php - 升级在 PHP 中 native 实现的 Olson tz 数据库

转载 作者:可可西里 更新时间:2023-10-31 23:24:29 26 4
gpt4 key购买 nike

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

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

如何在(1) XAMPP 开发机器和/或(2) 上升级由 PHP 实例 native 使用的 Olson 数据库 一个典型的共享托管服务...同时越过尽可能少的障碍和管理障碍?共享托管环境是否有任何细节可能会变得更加困难,人们应该注意?存在多个数据副本是否可行,以便在有人以某种方式搞砸时可以轻松撤消更改?

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

最佳答案

确定的答案

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

我已将其转换为社区 Wiki。


调查

php-5.3.8.tar.bz2 等包中的分布式源代码包含在 ext/date/lib 目录中的 Olson 数据库的翻译和文件 timezonedb.htimezonemap.hfallbackmap.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 月 9 日,上面的链接是 404,Internet Archive 的 WayBack Machine 无能为力,因为它不允许通过 robots.txt 文件进行搜索。

但是,在 Google 上搜索“php timelib”会发现:

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

关于php - 升级在 PHP 中 native 实现的 Olson tz 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8771316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com