2015-07-12 59 views
0

如何通過preg_match識別出包含URL的字符串實際上是指向文件而不是指向有效頁面。例如:PHP正則表達式 - URL - 指向文件的鏈接

www.example.com/a.png 
www.example.com/a/b/c/d.mp4 
www.example.com/e/f/h.xls 

如果我只是做一個爆炸「。」並檢查最後的索引,它不會工作。另外,我沒有完整的可能擴展列表,並且想寫一些通用的東西。

謝謝。

+0

爲什麼不工作?爆炸'。'似乎很好 – MaHDyfo

+0

它會選擇.com也是一個有效的頁面,而不是鏈接到一個文件... – Ahmad

+0

通過做一個array_pop它會得到你預期的結果。 – MaHDyfo

回答

2
\/.+\.(?!php|php5)[a-zA-Z0-9]{1,4} 

(PHP和PHP5是黑名單這裏的例子)

或者

發生爆炸.並在其上做一個array_pop。

我建議使用白名單而不是黑名單。只添加允許的擴展名。