Вот несколько примеров ссылок imgur:
https://imgur.com/gallery/s2Bqq
View post on imgur.com
Japan's levitating Maglev train reaches 500km/h (311mph)
Japan's levitating Maglev train reaches 500km/h (311mph)
Imgur API специально просит удостоверение личности изображения (s2Bqq
, 26xcQUF
и т. д.), но из того, что я видел, никак не может получить идентификатор изображения по ссылке.
Итак, мой вопрос: как бы я, используя PHP, мог получить идентификатор любой imgur-ссылки?
Возьмите последний компонент пути и удалите все расширения на нем.
Один подход:
$id = pathinfo($url, PATHINFO_FILENAME);
С parse_url()
Вы можете получить всю свою информацию:
print_r(parse_url('https://i.imgur.com/26xcQUF.jpg'));
Array
(
[scheme] => https
[host] => i.imgur.com
[path] => /26xcQUF.jpg
)
В этом случае просто сделайте:
echo substr( $array['path'],1,-4);
Жить: http://ideone.com/0N6cmj
Это может быть сделано с помощью регулярных выражений
Простой пример будет ^.+/([^/]+)(\.[^/]+)?$
которая соответствует последней части URL, за вычетом любого расширения.
Чтобы использовать его в PHP, preg_match('#^.+/([^/]+)(\.[^/]+)?$#', $url, $matches)
а также $matches[1]
будет иметь идентификатор.