2011-01-22 164 views
0

我看不到preg_match的结果!哪里有问题?为什么不显示preg_match的结果?

preg_match('@^(?:http://)?([^/]+)@i',"'".$urls['url']."'", $matches); 
    $host = $matches[1]; 
    preg_match('/[^.]+\.[^.]+$/', $host, $matches); 
echo "from: <p id='long'>{$matches[0]}\n</p>"; 
} 

输出:

from: 
+2

为什么你要运行两个`的preg_match()`电话?而且,你的`(?:http://)?`会因为你的测试字符串中的```而始终与空白匹配。 – BoltClock 2011-01-22 17:19:45

回答

1
echo parse_url($urls['url'], PHP_URL_HOST); 
2

如果输入的只是一个网址,你可以使用parse_url(),你的情况与PHP_URL_HOST标志。

1

为什么不使用parse_url()

,改变"'".$urls['url']."'"$urls['url']

相关问题