0
我的代碼是:函數將文本網址轉換成HTML URL
$rawhtml = file_get_contents("site url");
$pat= '/((http|ftp|https):\/\/[\w#$&+,\/:;[email protected]]+)[^\w#$&+,\/:;[email protected]]/i';
preg_match_all($pat,$rawhtml,$matches1);
foreach($matches1[1] as $plinks)
{
$links_array[]=$plinks;
}
測試的幾種情況後,我注意到函數有一些「泄漏」。如果有空白,鏈接將被破壞。
比如我有一個變量本文網址:
$rawhtml = " http://www.filesonic.com/file/2185085531/TEST Voice 640-461 Test Cert Guide.epub
"
結果應該是由行只有一個鏈接:
http://www.filesonic.com/file/2185085481/TEST Voice (640)+461 Test Cert Guide.pdf
但結果是
http://www.filesonic.com/file/2185085531/TEST
有時提取的鏈接還包含,
或'
或"
年底。如何擺脫這些?
你問什麼可能是不可能的。腳本怎麼知道在''現在訪問http://example.com'''這個空間不是URL的一部分,而是''現在下載http://example.com/white space.pdf'''它是? – JJJ 2012-02-03 14:01:18
從技術上講,這些空間不屬於URL。解決缺乏恰當的語法只會是一個黑客。而不知道實際的源頁面,很難解決。但你有沒有考慮過其他各種[提取鏈接形式的HTML](http://stackoverflow.com/search?q=extract%20links%20from%20html%20php)問題中提到的替代方法? – mario 2012-02-03 14:02:11
如何從提取的鏈接中刪除這些逗號,引號或雙引號 – Harvi 2012-02-03 14:19:27