2010-07-07 99 views
1

我無法找到一個代碼在PHP中篩選這個..如何過濾此網址?

我有例如多個網址:

www.google.com 
www.twiter.com 
www.facebook.com 
www.youtube.com 
www.techcrunch.com/webroot-brightcloud/ 
www.mashable.com/hello-how-are-you/ 
www.yahoo.com 
www.msn.com 

我要的是我需要過濾與子目錄或頁面域。在例子techcrunch.com和mashable.com需要從最終列表中刪除,因爲他們有子頁面。

以上是一個例子,所以任何具有子頁面或子目錄的域名都需要從列表中刪除。

我們如何做到這一點在PHP

+0

你需要匹配正則表達式的URL。 你是什麼意思的「過濾器」?阻止訪問您的網站? **編輯:**我誤解了這個問題。似乎Artefacto有正確的答案。 – 2010-07-07 14:42:07

回答

1
array_filter($arr, function ($el) { return strpos($el, "/") === false; }); 

或爲<版本的PHP 5.3:

function sel($el) { 
    return strpos($el, "/") === false; 
} 
$res = array_filter($arr, 'sel'); 
+0

其實我想從當前列表中刪除這樣的URL ... – mathew 2010-07-07 15:21:47

+0

@mat這就是這樣做的。見http://codepad.viper-7.com/EWPisK – Artefacto 2010-07-07 15:22:10

+0

哦,非常好,你是偉大的....感謝的人。 – mathew 2010-07-07 15:29:57

1

如果斜線的存在的本身,所有你需要過濾,然後一起去Artefacto的答案。如果您需要能夠應對難以預料的格式,你可以使用parse_url

$url = 'www.techcrunch.com/?a=asd/zxc'; 
$urlInfo = parse_url("http://$url"); 
if (strlen(trim($urlInfo['path'], '/'))) { 
    // remove from list 
}