PHP quelque chose de plus rapide que d'exploser pour obtenir le nom de fichier à partir de l'URL
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.
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.
Essaie le dirname
fonction:
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow