首先从URL获取子域很容易.
http://www.domain.example
Run Code Online (Sandbox Code Playgroud)
扫描第一个时间段然后返回"http://"之后的任何内容......
然后你记得
http://super.duper.domain.example
Run Code Online (Sandbox Code Playgroud)
哦.所以,你想,好吧,找到最后一个时期,回过头来获取一切!
然后你记得
http://super.duper.domain.co.uk
Run Code Online (Sandbox Code Playgroud)
而你又回到了原点.除了存储所有顶级域名列表外,任何人都有任何好主意吗?
是否可以不使用正则表达式?
例如,我想检查一个字符串是否是一个有效的域:
domain-name
abcd
example
Run Code Online (Sandbox Code Playgroud)
是有效的域名.这些当然是无效的:
domaia@name
ab$%cd
Run Code Online (Sandbox Code Playgroud)
等等.所以基本上它应该以字母数字字符开头,然后可能会有更多的alnum字符加上连字符.它也必须以alnum角色结束.
如果不可能,你能建议我采用正则表达式吗?
编辑:
为什么这不起作用?我错误地使用了preg_match吗?
$domain = '@djkal';
$regexp = '/^[a-zA-Z0-9][a-zA-Z0-9\-\_]+[a-zA-Z0-9]$/';
if (false === preg_match($regexp, $domain)) {
throw new Exception('Domain invalid');
}
Run Code Online (Sandbox Code Playgroud) 我需要编写一个函数来解析包含域名的变量.我最好用一个例子来解释这个,变量可以包含以下任何一个:
here.example.com
example.com
example.org
here.example.org
Run Code Online (Sandbox Code Playgroud)
但是当通过我的函数时,所有这些必须返回example.com或example.co.uk,基本上是域名.我确定我以前做过这个,但我一直在谷歌搜索大约20分钟,但找不到任何东西.任何帮助,将不胜感激.
编辑:忽略.co.uk,假设通过此功能的所有域都有3个字母的TLD.
PHP的parse_url()有一个主机字段,其中包含完整的主机.我正在寻找最可靠(也是最便宜)的方式来返回域和TLD.
举个例子:
我只想找google.com或google.co.uk.我已经考虑了一个有效的TLD /后缀表,只允许这些和一个单词.你会以其他方式做吗?有没有人知道这种事情的预先有效的REGEX?
我有一系列像这样的域名:
domain.com
second.com
www.third.com
www.fourth.fifth.com
sixth.com
seventh.eigth.com
Run Code Online (Sandbox Code Playgroud)
我想要的是一个只返回主机的功能.没有子域名.
这段代码是我到目前为止获取主机名的代码:
$parse = parse_url($url);
$domain = $parse['host'];
Run Code Online (Sandbox Code Playgroud)
但这仅返回:
domain.com
second.com
third.com
fourth.fifth.com
sixth.com
seventh.eigth.com
Run Code Online (Sandbox Code Playgroud)
我需要这个输出:
domain.com
second.com
third.com
fifth.com
sixth.com
eigth.com
Run Code Online (Sandbox Code Playgroud) 如果我有以下网址,我想获取任何网址的主机名
$url = "http://www.google.com";
Run Code Online (Sandbox Code Playgroud)
那么我想只得到google点后面.和扩展点之前的内容,.以便它可以应用于所有类型的网址.
所以结果应该是google!我认为这可能需要正则表达式或以某种方式任何想法如何做,谢谢.