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

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

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

Ответы [ 5 ]

7 голосов
/ 16 мая 2010

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

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

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

4 голосов
/ 16 мая 2010
substr( $url , strrpos( $url , "/" ) + 1 );

или

substr( strrchr( $url , "/" ) , 1 );
1 голос
/ 17 мая 2010

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

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

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

0 голосов
/ 17 мая 2010
0 голосов
/ 16 мая 2010

Попробуйте функцию dirname:

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

...