【问题标题】:Use PHP to Get File Path/Extension from URL string [duplicate]使用 PHP 从 URL 字符串中获取文件路径/扩展名 [重复]
【发布时间】:2013-05-11 01:07:19
【问题描述】:

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

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

我想过尝试使用一些 preg_match 逻辑来查找 url 中的最后一个 /,拆分它,找到 ?从中(如果有的话)并删除除此之外的点,然后尝试在剩下的内容之后对其进行整理。但如果文件名称中有多个.,即:2012.01.01-name.jpg

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

【问题讨论】:

    标签: php file


    【解决方案1】:
    $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
    

    也可以使用单行:

    $extension = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_EXTENSION);
    $filename  = pathinfo(parse_url($url, PHP_URL_PATH), PATHINFO_FILENAME);
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        你可以使用下面的代码来做你想做的事……

        $fileName = $_SERVER['SCRIPT_FILENAME']; //$_SERVER['SCRIPT_FILENAME'] can be replaced by the variable in which the file name is being stored
        $fileName_arr = explode(".",$fileName);
        
        $arrLength = count($fileName_arr);
        $lastEle = $arrLength - 1;
        echo $fileExt = $fileName_arr[$arrLength - 1]; //Gives the file extension
        unset($fileName_arr[$lastEle]);
        $fileNameMinusExt = implode(".",$fileName_arr);
        
        $fileNameMinusExt_arr = explode("/",$fileNameMinusExt);
        $arrLength = count($fileNameMinusExt_arr);
        $lastEle = $arrLength - 1;
        echo $fileExt = $fileNameMinusExt_arr[$arrLength - 1]; //Gives the filename
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-23
          • 2022-06-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多