Получить идентификатор файла с Google Диска с помощью PHP

#preg-match #extract

Вопрос:

Я искал способ извлечь идентификатор файла на Google Диске, и хорошо искал информацию и некоторые аналогичные функции, мне удалось найти это, это работает для меня, но я надеюсь, что они смогут отполировать его немного больше.

     <?php
function get_drive_id_from_url($url)  {
    preg_match('//d/(. )//', $url, $result);
    return $result[1];
}

echo get_drive_id_from_url('https://drive.google.com/file/d/FILE_ID/view?usp=sharing');
?>
 

Ответ №1:

Если вы используете другой разделитель, / вам не нужно избегать прямой косой черты. Вы можете использовать K , чтобы забыть, что соответствует до сих пор, а затем сопоставить любой символ, кроме /

Затем утвердите a / прямо справа, используя положительный внешний вид.

Поскольку при этом не используется группа захвата, результат будет $result[0] получен .

 /d/K[^/] (?=/)
 

Шаблон совпадает:

  • /d/ Совпадение буквально
  • K Очистите буфер совпадений
  • [^/] Сопоставьте 1 раз любой символ, за исключением / (или [^/s] чтобы также не совпадать с символом пробела)
  • (?=/) Позитивный взгляд, утверждайте / прямо направо

Смотрите демонстрацию регулярных выражений и демонстрацию PHP.

Пример кода

 function get_drive_id_from_url($url)
{
    preg_match('~/d/K[^/] (?=/)~', $url, $result);
    return $result[0];
}

echo get_drive_id_from_url('https://drive.google.com/file/d/FILE_ID/view?usp=sharing');
 

Выход

 FILE_ID
 

Вариант группы захвата обновленного шаблона:

 /d/([^/] )/
 

Демонстрация регулярных выражений