PHP quelque chose de plus rapide que d'exploser pour obtenir le nom de fichier à partir de l'URL

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

  •  27-09-2019
  •  | 
  •  

Question

Mes URL peuvent être absolues ou relatives:

$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;
}

Il doit y avoir un moyen plus rapide de le faire correctement? Peut-être une expression reg? Mais c'est chinois pour moi.

Était-ce utile?

La solution

basename Renvoie le nom du fichier:

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

Vous pouvez même éliminer l'extension du nom de fichier.

Autres conseils

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

ou

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

Je crois que le nom de base est le plus rapide, mais vous pouvez également utiliser

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

Pathinfo vous permet également d'obtenir le nom de fichier, l'extension, le dirname etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top