2011-01-19 10 views
0

私はユーザーが自分のプロフィール画像にURLを設定できるプロフィールページを作っています。これを例えば正規表現でどうやってチェックするのですか?regex URL phlの画像

+0

あなたは「自分」を意味しました。 –

+0

正確に「チェック」するつもりはありますか?基準は何ですか? –

答えて

1

mimeにはcURLを使用できます。 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; 

} 
+0

preg_matchは "http://www.itavisenのような有効なURLをブロックするようです。いいえ/ gfx/speedometerNy.png " – ganjan

+0

他のエラーがあるので、私はそれを更新しました。私は一般的に、URLの前にHTTPが付いていることを好みます。個人的な好み:)私はHTMLの基本タグのhrefに配置されるURLのためにこれを使用します。 –

1

できません。すべてのファイルは任意のアドレスで提供できます。 URLから返されるContent-Typeと、おそらく画像のフォーマットをチェックする必要があります。

+0

さて、少なくとも、それが有効なURLであることをテストするかもしれません。 –

+0

それが本当の質問ならば、それはhttp://stackoverflow.com/questions/206059/php-validation-regex-for-urlの欺瞞です – Joe

0

最初のテストは、その後、あなたはそれが画像だ場合は、ローカルリソース、およびテストをダウンロードする必要があります。