2015-07-12 50 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。

我建议使用白名单而不是黑名单。只添加允许的扩展名。