php.net为parse_url,preg_match和一般regular expressions提供了很好的参考资料。我试图理解我在SO上找到的这个片段:
我熟悉所有的片段,除了这一点:
?P<domain>
这部分与整体有什么关系。特别是'?P'。我假设<domain>
只是在返回的关联数组中定义了一个键。
function getDomain($url)
{
$pieces = parse_url($url);
$domain = isset($pieces['host']) ? $pieces['host'] : '';
if(preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs))
{
return $regs['domain'];
}
return false;
}
答案 0 :(得分:0)
?P<domain>
部分定义该组的名称。这意味着您可以使用$regs['domain']
按名称而不是按$regs[0]
作为号码来访问它。它在大型正则表达式中很有用,因为为每个组赋予名称可以更容易理解正在发生的事情。