Nom du fichier sans l'extension

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 034 fois - Téléchargée 34 fois

Contenu du snippet

Bonjour :)
Si vous ne voulez trouver que l'extension d'un fichier, pas de probleme. En revanche si vous voulez un nom de fichier SANS son extension cela devient plus compliqué !
Certains diront qu'un seul list($var1,$var2) = split(".", $str) suffirait. Mais si votre fichier ne se trouve pas sous cette forme : file.ext mais sous la forme : file.plop.ext, alors le simple split() ne marche pas. C'est pour ca que j'ai fais ce script vite fait bien fait et je pensais utile de le diffuser ;o)

Source / Exemple :


<?php

// nom du fichier
$file = "file.test.php";

// explode retourne un tableau de chaine séparer par "."
$var = explode(".",$file);

// on comte le nom de ligne dans le tableau, puis -1
// car le tableau commence a 0 et count commence a 1
$nb = count($var)-1;

// et on affiche
echo substr($file, 0, strlen($file)-strlen($var[$nb])-1);

// on selectionne dans $file,
// de 0 (début), jusqu'a >
// et on compte (strlen) le nombre de caractères contenus dans $file
// moins le nombre de caractères contenus dans la derniere case du tableau (l'extension)

// affiche : file.test

// j'ajoute ce petit script bcp plus rapide et plus facile a mettre en place
// mais il retourne le " . " (facilement enlevable :p)

$file = "test.html";

echo strrchr(basename($file), ".");

?>

Conclusion :


Pour plus d'information sur les fonctions :
http://fr3.php.net/manual/fr/function.explode.php
http://fr3.php.net/manual/fr/function.count.php
http://fr3.php.net/manual/fr/function.substr.php
http://fr3.php.net/manual/fr/function.strlen.php

:)

enjoy and like [PHPWorld]

A voir également

Ajouter un commentaire

Commentaires

cs_GRenard
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
Shit, ya débutant et débutant... ou super débutant ?
cs_GRenard
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
Oh, et t'as essayé sans extension... ? non... j'sais pas si tu savais mais ca existe des fichiers sans extension.

Oh, et j'avais pas lu "En revanche si vous voulez un nom de fichier SANS son extension cela devient plus compliqué !"

C'est tellement compliqué ... que t'as oublié de mettre une conditions...

Tk, à mon avis c'est trop simple pour être une source.
cs_Anthomicro
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8 -
Salut,

la fonction basename te permet de faire cela...
malik7934
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
-
Si tu utilises basename telle quelle, tu dois préciser l'extension... pas très utile dans le cas présent!

$file = basename ("index.php",".php");
// $file is set to "index"

http://ch2.php.net/manual/fr/function.basename.php
cs_Anthomicro
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8 -
ouais, enfin tu peux quand même faire ça en une ligne via basename...

$fichier_sans_ext=basename($nomfichier,strlen($nomfichier)-4);

je pense que ça marche ;-)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.