PHP что-то быстрее, чем взорваться, чтобы получить имя файла от URL

StackOverflow https://stackoverflow.com/questions/2844972

  •  27-09-2019
  •  | 
  •  

Вопрос

Мой 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;
}

Должен быть бы более быстрый способ сделать это правильно? Может быть, выражение рег? Но это китаец для меня ..

Это было полезно?

Решение

basename Возвращает имя файла:

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

Вы даже можете распределить расширение имени файла.

Другие советы

substr( $url , strrpos( $url , "/" ) + 1 );

или

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

Я верю, что BaseName является самым быстрым, но вы также можете использовать

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

PathInfo также позволяет вам получить имя файла, расширение, дирнама и т. Д.

Попробуйте dirname Функция:

http://www.php.net/manual/en/function.dirname.php.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top