2013-04-08 125 views
1

我想知道,我有這個項目,其中一個人將鏈接複製到表單中。現在這個鏈接必須是一個圖像,大多數用戶所說的永遠不會信任用戶的輸入。preg match on image

我把範圍縮小到的preg_match(),可檢查是否有可我的網站上顯示的鏈路上的圖像。

我的問題基本上是你如何確保檢查的形式時,它是一個圖像,而不是像病毒與末端延伸.jpg格式。

+0

只要你把它放在一個''標籤,它不會被解釋爲可執行文件,所以病毒是不是一個問題。 (儘管存在漏洞)。(但是,如果您確實允許遠程服務器上的圖像,請注意他們可以跟蹤您的用戶等等。) – Ryan 2013-04-08 23:10:20

+0

您是14歲大學嗎?恭喜,順便說一下:D – Ryan 2013-04-08 23:12:45

回答

0
$url = 'http://foo.bar.com/path.jpg?arg=value#anchor'; 
if (preg_match("/\.(jpg|png)$/",parse_url($url, PHP_URL_PATH)){ 
    // YOUR CODE HERE 
} 

此匹配以.jpg或.png結尾的文件名....只是在括號中添加要允許(由|分隔符號)擴展

0

使用finfo_file得到文件的MIME類型。

如果MIME類型是類似image/gifimage/png ...那麼該文件是一個圖像。