URL регулярного выражения для изображения в PHP - PullRequest
0 голосов
/ 19 января 2011

Я создаю страницу профиля, где пользователи могут установить URL для своего изображения профиля.Как мне проверить это с помощью регулярных выражений, например?

Ответы [ 5 ]

1 голос
/ 19 января 2011
1 голос
/ 19 января 2011

Вы можете использовать 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;

}
1 голос
/ 19 января 2011

Вы не можете.Любой файл можно обслуживать по любому адресу.Вам необходимо проверить тип содержимого, возвращаемый URL-адресом, и, возможно, формат изображения.

0 голосов
/ 19 января 2011

Первый тест, который является действительным URL-адресом с filter_var()

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

Затем вам необходимо скачать ресурс и проверить локально, является ли он изображением.

0 голосов
/ 19 января 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...