Nom du fichier sans l'extension

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 477 fois - Téléchargée 35 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
Messages postés
731
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
27 mai 2010

ou les .php3
Messages postés
420
Date d'inscription
vendredi 28 novembre 2003
Statut
Membre
Dernière intervention
20 mars 2006

function getFileName($fichier)
{
return basename ($fichier,strrchr($fichier,'.'));
}

Je pense qu'on ne peut faire plus court ;p
Pour l'explication strrchr($chaine,$search); renvoie $chaine à partir de la dernière occurence de la chaîne $search. Donc dans ce cas il renverra à coup sur l'extension. basename() n'a plus qu'a finir le travail :)
Messages postés
2
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
30 avril 2005

Je l'ai déjà posté dans un autre coin du forum :
function getFileName($fichier)
{
$fichier = basename ($fichier);
return substr($fichier,0,-strlen(strrchr($fichier,'.')));
}

Tout les fichiers sont traités :
c:\monrep\monfich.txt.php4
devient : monfich.txt
Messages postés
34
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
11 mai 2006

:)
alors on va tout reprendre depuis le début lol
Viran t'as du rater une partie de l'histoire ou je ne sais pas quoi ... mais lis tout les commentaires et tu verras qu'ils ne sont pas tous négatifs (merci les autres :))
et pis je suis pas débutant :x je dis pas être le plus programmer PHP de tous les temps, mais je suis pas deb lol
et pis GRenard par ces critiques justes (enfin desfois exagérées ;o)) nous apprend beaucoup de choses.
Et ici les débutants et les experts jouent dans la meme cours, peut-etre que ca dérange, mais si GRenard ou AnthoMicro ou d'autre, étaient dérangé par cette 'cohabitation', ils ne seraient pas la ^^
c'est pas tres clair tout ca :s
Sur ce bonne journée à tous :)
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
Félicitation viran, tu as tout compris de ma vie, ... regarde les scripts utiles (je ne dis pas que celui-ci n'est pas utile mais il ne fait pas ce qu'il dit exactement), tu y verras des commentaires très positifs. Mais j'ai changé un peu face au débutant ;) mais quand le script existe en 208432423 copies, ou qu'il ne marche pas bien, ya raison de pas être content et/ou DE DONNER SON AVIS !
Afficher les 18 commentaires

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.