使用PHP从URL字符串获取文件路径/扩展名

chr*_*ris 7 php file

我正在阅读pathinfo basename等等.但我从这些中收集的是如何在使用绝对/相对路径时获取我想要的细节.我想弄清楚的是如何filename.ext从url字符串中获取(不一定是活动URL,可能是用户输入URL).

目前,我希望获取包含图像的用户提供的URL的文件名和扩展名.但可能希望将此进一步扩展.总而言之,我想弄清楚如何获取文件名和扩展名

我想过尝试使用一些preg_match逻辑找到最后一个/在网址中,拆分它,找到?从那个(如果有的话)并删除超出该点的点,然后尝试在剩下什么之后将其排序.但是在文件.名称中有多个的情况下我会陷入困境,即:2012.01.01-name.jpg

因此,我正在寻找一种理智的最佳方式来做到这一点,而不会有太大的误差.

got*_*osh 16

$path      = parse_url($url, PHP_URL_PATH);       // get path from url
$extension = pathinfo($path, PATHINFO_EXTENSION); // get ext from path
$filename  = pathinfo($path, PATHINFO_FILENAME);  // get name from path
Run Code Online (Sandbox Code Playgroud)

也可以使用单行:

$extension = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_EXTENSION);
$filename  = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_FILENAME);
Run Code Online (Sandbox Code Playgroud)


Max*_*dov 13

用于parse_url($url, PHP_URL_PATH)获取URI并在pathinfo/basename中使用URI.