我正在开发一个脚本,如果运行该脚本,将从http://php.net/downloads.php中检索当前稳定版本和旧稳定版本并进行编译。
由于版本号经常更改,并且php.net本身可能会更改布局等(它们不提供RSS/ atom提要),有没有办法从100%有效的脚本(shell或python)中检索版本号?
我正在开发一个脚本,如果运行该脚本,将从http://php.net/downloads.php中检索当前稳定版本和旧稳定版本并进行编译。
由于版本号经常更改,并且php.net本身可能会更改布局等(它们不提供RSS/ atom提要),有没有办法从100%有效的脚本(shell或python)中检索版本号?
5条答案
按热度按时间xuo3flqw1#
数据提供为
*JSON格式http://php.net/releases/active.php
*RSS(原子源)http://php.net/releases/feed.php
参考:https://github.com/php/web-php/tree/master/releases
o3imoua42#
您可以阅读PHP Git repo以获取最新的标签(版本)。
我不知道如何在Python上实现,但你可以从shell中提取repo中的标记:
您可以根据需要更改
--max-count=5
。此外,您可以使用一些Python DOM库轻松地解析this page。
我刚刚发现here是一个有趣的命令:
这样你就可以从PHP源代码库中获取所有的标签,而不用克隆它。你需要一些解析,但这是一个简单的方法。
gcmastyq3#
根据您问题中的“bash”标记,我用bash编写了我的解决方案。
而不是在评论中发布的URL:
...我更喜欢PHP changelog:尽管它是HTML而不是XML,但它遵循更严格的结构。2注意新闻交换“已重新发布!”3和“现在可用”4以及一个“re:“消息的出现。
所以我想出了这个剧本:
输出以下列表:
如果您想获取日期之类的信息,我建议使用BeautifulSoup + Python而不是bash,日期似乎被放在
<b></b>
或<time></time>
标记中,尽管我无法说出原因。如果你可以访问git,我建议你使用jackflash回答中提到的
git ls-remote
。nfs0ujit4#
如果您想获取当前发布版本,可以使用php.net序列化发布版本url格式,说明位于https://www.php.net/releases页右侧
可以使用任何客户端批处理获取格式化数据并在脚本中使用它。
json中的所有版本示例:https://www.php.net/releases/?json
示例最新php 7.1 json版本:https://www.php.net/releases/?json&version=7.1
nlejzf6q5#
有一个免费的服务提供RSS和JSON数据的当前版本的一些服务器应用程序,如PHP,Nginx,Apache,Ruby等:
https://current-version.com/