如何在 PHP 中删除 URL 中的 http://、www 和斜线?
我需要一个从 URL 生成纯域名的 php 函数。因此,此函数必须从 URL 中删除 http://
、www
和 /
(斜杠)部分(如果这些部分存在)。以下是输入和输出示例: 输入-> http://www.google.com/ |输出->谷歌.com
输入-> http://google.com/ |输出->谷歌.com
输入-> www.google.com/ |输出->谷歌.com
输入-> google.com/ |输出->谷歌.com
输入->谷歌.com |输出-> google.com
我检查了 parse_url
函数,但没有返回我需要的内容。 因为我是 PHP 初学者,所以这对我来说很困难。如果您有任何想法,请回答。
提前致谢。
I need a php function which produce a pure domain name from URL. So this function must be remove http://
, www
and /
(slash) parts from URL if these parts exists. Here is example input and outputs:
Input - > http://www.google.com/ | Output -> google.com
Input - > http://google.com/ | Output -> google.com
Input - > www.google.com/ | Output -> google.com
Input - > google.com/ | Output -> google.com
Input - > google.com | Output -> google.com
I checked parse_url
function, but doesn't return what I need.
Since, I'm beginner in PHP, it was difficult for me. If you have any idea, please answer.
Thanx in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
与您的所有示例输入一起正常工作。
Works correctly with all your example inputs.
有很多方法可以从网址中获取域名,我在下面发布了四种方法,从最短到最长。
#1
#2
#3
#4
上面的所有函数都返回相同的响应:
示例.com
There are lots of ways grab the domain out of a url I've posted 4 ways below starting from the shortest to the longest.
#1
#2
#3
#4
All of the functions above return the same response:
example.com
试试这个,它将删除您想要的内容(http://、www 和尾部斜杠),但会保留其他子域,例如 example.google.com
或者作为单行:
Try this, it will remove what you wanted (http:://, www and trailing slash) but will retain other subdomains such as example.google.com
Or as a one-liner:
这将返回二级域名,尽管它对于 .co.uk 域名来说毫无用处,因此您可能需要进行更多检查,并包含其他部分(如果 strrev($host[0]) 是 uk、au 等)。
This would return second level domain, though it would be useless for say .co.uk domains, so you might want to do some more checking, and include additional parts if strrev($host[0]) is uk, au, etc.
第一种方法是使用一个正则表达式来修剪 URL 中不必要的部分,例如协议、www 和结尾斜杠。
通过替代方法,您可以使用 parse_url,但是你必须进行额外的检查来检查
host
部分是否存在,然后使用正则表达式修剪www.就用第一种方法,简单又懒。
First way is to use one regular expression to trim unnecesary parts of URL like protocol, www and ending slash
By alternative way you can use parse_url, but you have to make additional cheks to check if
host
part exists and then use regular expression to trimwww
. Just use first way, it is simple and lazy.这将解释“http/https”、“www”和结尾斜杠,
只需询问您是否需要帮助理解正则表达式。
This will account for "http/https", "www" and the ending slash
Just ask if you need help understanding the regex.
使用 parse_url
http://www.php.net/manual/en/function .parse-url.php
Use parse_url
http://www.php.net/manual/en/function.parse-url.php