【问题标题】:PHP something faster than explode to get filename from URLPHP 比从 URL 获取文件名更快的方法
【发布时间】:2010-05-16 18:38:15
【问题描述】:

我的 URL 可以是绝对的或相对的:

$rel = "date/album/001.jpg";
$abs = "http://www.site.com/date/album/image.jpg";

function getFilename($url) {
    $imgName = explode("/", $url);
    $imgName = $imgName[count($imgName) - 1];
    echo $imgName;
}

必须有更快的方法来做到这一点,对吧? 也许是一个 reg 表达式?但这对我来说是中文..

【问题讨论】:

  • 你真的需要“更快”的方式吗?
  • 循环遍历lotaaa图像,是的,请...
  • 作为提示,您可以使用 end() 获取数组的最后一个值
  • 那又怎样?您当前的功能是否不够快?

标签: php url explode


【解决方案1】:

basename 返回文件名:

function getFilename($url) {
    return basename($url);
}

您甚至可以去掉文件扩展名。

【讨论】:

    【解决方案2】:
    substr( $url , strrpos( $url , "/" ) + 1 );
    

    或

    substr( strrchr( $url , "/" ) , 1 );
    

    【讨论】:

      【解决方案3】:

      我相信 basename 是最快的,但你也可以使用

      $url = "http://www.mmrahman.co.uk/image/bg830293.jpg";
      getFileName($url){
          $parts = pathinfo($url);
          return $parts['basename'];
      }
      

      pathinfo 还允许您获取文件名、扩展名、目录名等。

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          【讨论】:

            猜你喜欢
            • 2015-12-16
            • 2016-02-28
            • 2010-09-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-04
            • 1970-01-01
            • 2011-06-17
            相关资源
            最近更新 更多