Я хотел бы использовать функцию preg_match (процедурная, а не oop) для проверки предоставленных пользователем URL-адресов для изображений, размещенных на imgur.com
Цель состоит в том, чтобы включить вызываемое изображение на страницу php (горячая ссылка), где пользователи могут использовать изображение в качестве своего аватара / изображения профиля.
Насколько я знаю, действительная горячая ссылка imgur:
https://i.imgur.com/FILENAME.XYZ
Где «FILENAME» - это что-то вроде «2lcqfvJ», а «XYZ» - это формат изображения, например «jpg». Пример:
https://i.imgur.com/2lcqfvJ.jpg
У меня есть некоторые трудности, чтобы выяснить шаблон для проверки. Я еще использую этот метод для определения допустимых URL-адресов tinypic и imageshack
Я попытался проверить URL, предоставленный пользователем, но, похоже, он не работает:
if ( !preg_match('/^(http|https):\/\/(.*?)\.(imgur)\.(com)\/.(png|jpg|gif|PNG|JPG|GIF)$/i',$url) )
Передав указанную выше ссылку (https://i.imgur.com/2lcqfvJ.jpg), функция не распознает ее как действительную ссылку imgur. Поэтому я могу представить, что с регулярным выражением что-то не так.