2011-01-19 36 views
0

我正在創建一個配置文件頁面,用戶可以在其中爲其配置文件圖像設置url。例如,我如何使用正則表達式來檢查它?正則表達式url到php中的圖像

+0

你的意思是「他們的」。 – 2011-01-19 12:28:55

+0

你究竟打算「檢查」什麼?什麼是標準? – 2011-01-19 12:29:20

回答

1

您可以使用cURL作爲mime。對於URL驗證我使用以下,但有負載。您可以使用FILTER_VALIDATE_URL,但它可能包含錯誤; http://bugs.php.net/51192

$url='image.png'; 

if(preg_match("#((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#ie", $url)){ 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_REFERER, 'http://yoursite.com'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_NOBODY, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
    curl_exec($ch); 
    $mime = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); 
    curl_close($ch); 

    print $mime; 

} 
1

你不能。任何文件都可以在任何地址提供。你需要檢查URL返回的Content-Type,也可能是圖片的格式。

+0

那麼,你至少可以測試它是一個有效的URL。 – 2011-01-19 12:55:11

+0

如果這是真正的問題,那麼這是一個愚蠢的http://stackoverflow.com/questions/206059/php-validation-regex-for-url – Joe 2011-01-19 13:36:56

0

首先測試與filter_var()

$url = filter_var($variable, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED); 

一個有效的URL,那麼你就需要下載的資源,本地測試,如果它是一個形象。