PHP 从 url 获取版本

Posted

技术标签:

【中文标题】PHP 从 url 获取版本【英文标题】:PHP Get version from url 【发布时间】:2021-08-25 17:46:27 【问题描述】:

如何从链接下载版本?我试图用 regEx 来做,但它没有按我的意愿工作。

我希望它会像这样工作(我给了NULL,没有什么可以选择的)

https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js > 1.11.2
https://ajax.googleapis.com/ajax/libs/jquery/v1.11.2/jquery.min.js > 1.11.2
https://ajax.googleapis.com/ajax/libs/jquery/version-1.11.2/jquery.min.js > 1.11.2
https://ajax.googleapis.com/ajax/libs/jquery/1-11-2/jquery.min.js > NULL
https://ajax.googleapis.com/ajax/libs/jquery/1112/jquery.min.js > NULL
https://www.google.com/recaptcha/api.js?render=6LdBsjgVaoTJ8rC-Npzz16bnAE > NULL

我的正则表达式:/([0-9]+\.?)+/

提前感谢您的帮助:)

【问题讨论】:

你到底想做什么?请澄清您的问题。 @AdisonMasih 我想从链接获取版本,如几个链接的示例所示。我给了箭头来说明从链接下载的内容 我当前的正则表达式不能按需要工作,因为它选择了每个数字而不是那么多,这应该是因为,例如,当我给出一个 recaptcha 的链接时,它会从键中选择值并且不应该返回任何东西 @Wiktor 已经回答了你的问题 :) 【参考方案1】:

你可以使用

\/(?:v(?:ersion)?-?)?\K\d+(?:\.\d+)+

请参阅regex demo。注意:如果您想确保版本号后面有 / 或字符串结尾,请在模式末尾添加 (?![^\/]) 前瞻 \/(?:v(?:ersion)?-?)?\K\d+(?:\.\d+)+(?![^\/])(请参阅 this regex demo)。

详情

\/ - 一个 / 字符 (?:v(?:ersion)?-?)? - v 的可选序列,然后是可选的 ersion,然后是可选的 - 字符 - \K - 省略匹配的文本 \d+(?:\.\d+)+ - 匹配和消费一个或多个数字,然后是一个或多个点序列和一个或多个数字。

【讨论】:

以上是关于PHP 从 url 获取版本的主要内容,如果未能解决你的问题,请参考以下文章

PHP 从多个 URL 获取站点标题

PHP 从 URL 获取数据

PHP:从绝对 URL 获取绝对路径

PHP 使用cURL PHP从URL获取数据

php PHP函数从URL获取youtube ID

使用 PHP 从 URL 获取 YouTube 视频 ID