首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测URL的"www“部分,而不考虑包含的"http://”“

检测URL的"www“部分,而不考虑包含的"http://”“
EN

Stack Overflow用户
提问于 2015-04-27 02:44:27
回答 1查看 76关注 0票数 1

我在一个分期和生产服务器上有一个站点。分期地址是"www-staging.example.com“,而生产只是"www.example.com”。

使用PHP,我需要能够检测"www“部分,并检查它是否是”www阶段“。无论URL是否包含协议位"http://"“,这也必须有效。

代码语言:javascript
复制
input: "www-staging.example.com" || "http://www-staging.example.com" || "https://www-staging.example.com" || www-staging.example.com/a/directory"

Expected Output: true.


input: "www.example.com" || "http://www.example.com" || "https://www.example.com" || example.com/a/directory

Expected Output: false.

我最初的方法是使用parse_url(),但是这并不解析'www-‘组件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-27 02:54:30

这似乎是一份.正则表达式(?:wo)?伙计!

在特定的条件下。即:

  • 您的域始终是example.com --如果您需要跨多个站点使用它,这是行不通的,尽管实现该功能并不困难。

不管怎么说,这应该行:

代码语言:javascript
复制
preg_match('^(?:https?:\/\/)?www(?:-staging)?\.example\.com\/', $url)

当然,用您的实际域名替换example\.com,用.转义为\.

如果您不想将该正则表达式放到另一个正则表达式中,并且不打算得到特定的匹配,则可以简化它:

代码语言:javascript
复制
preg_match('^(https?:\/\/)?www(-staging)?\.example\.com\/', $url)

虽然我太累了,对PHP没有足够的经验可以肯定地说,它也应该起同样的作用。

演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29886357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档