首页 > 解决方案 > 使用 PHP 从 Google Drive 获取文件 ID

问题描述

我一直在寻找一种在 Google Drive 中提取文件 ID 的方法,以及寻找信息和一些类似功能的方法,我设法找到了这个,它对我有用,但我希望他们能稍微完善一下更多的。

    <?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');
?>

标签: preg-matchextract

解决方案


如果您使用另一个分隔符/,则不必转义正斜杠。您可以使用\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/([^/]+)/

正则表达式演示


推荐阅读