我有一個包含URL和其他文本的字符串。我想將所有的URL都存入$matches
數組中。但是,下面的代碼將無法獲得全部的URL中$matches
陣列:從字符串中獲取所有網址?
$matches = array();
$text = "words cotry.lk and newe.com joemiller.us schoollife.edu hello.net some random news.yahoo.com text http://tinyurl.com/9uxdwc some http://google.com random text http://tinyurl.com/787988 and others will en.wikipedia.org/wiki/Country_music URL";
preg_match_all('$\b[-A-Z0-9+&@#/%?=~_|!:,.;][.]*[-A-Z0-9+&@#/%=~_|(https?|ftp|file)://-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%?=~_|!:,.;]{8,50}$i', $text, $matches);
print_r($matches);
上面的代碼不會告訴我以下網址:
cotry.lk
newe.com
你能告訴我一個例子,如何我可以修改上面的代碼來獲取所有的URL。
請注意,並非所有的URL都包含herf,並且這個字符串不是從html文件中獲取的。
對於您的情況,您的正則表達式只匹配網址,因爲它們的長度 - 它也匹配長度超過8個字符的任何其他單詞 – 2013-04-27 12:29:50