begin process at 2012 05 27 19:28:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > NOM DU FICHIER SANS L'EXTENSION

NOM DU FICHIER SANS L'EXTENSION


 Information sur la source

Note :
6,33 / 10 - par 3 personnes
6,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Niveau :Débutant Date de création :10/02/2005 Date de mise à jour :09/11/2005 15:14:07 Vu :9 899

Auteur : HyWaN

Ecrire un message privé
Site perso
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

 Description

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

  • <?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), ".");
  • ?>
<?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.ph p
http://fr3.php.net/manual/fr/function.count.php
http://fr3.php.net/manual/fr/function.substr.php
h ttp://fr3.php.net/manual/fr/function.strlen.php

: )

enjoy and like [PHPWorld]


 Historique

18 février 2005 09:35:39 :
j'ai juste voulu ajouter un petit code, plus facile a mettre en place. Et une autre facon de faire
09 novembre 2005 15:14:07 :
mise a jour des urls (les scripts n'existant plus sur mon site perso ...)

 Sources du même auteur

Source avec une capture COLORISATION SYNTAXIQUE D'HTML
Source avec une capture COLORATION SYNTAXIQUE DE CSS
SÉCURISÉ LES INCLUDES PAR GET

 Sources de la même categorie

SUPPRESSION AUTOMATIQUE DES FICHIERS RAW ORPHELINS APRÈS UN ... par malokaff
UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
COMPTEUR DE VISITES SUR FICHIER par pierreSabatier
FONCTION RECURSIVE DE DOSSIERS par tefa24600
Source avec Zip CONVERSION DES UNITÉS INFORMATIQUE (O, KIO, MIO, GIO, TIO...... par genetApt151

Commentaires et avis

Commentaire de GRenard le 10/02/2005 14:01:30

Shit, ya débutant et débutant... ou super débutant ?

Commentaire de GRenard le 10/02/2005 14:06:48

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.

Commentaire de Anthomicro le 10/02/2005 18:35:54

Salut,

la fonction basename te permet de faire cela...

Commentaire de malik7934 le 10/02/2005 19:12:33

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

Commentaire de Anthomicro le 10/02/2005 19:22:03

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 ;-)

Commentaire de Anthomicro le 10/02/2005 19:22:23

et encore ça marche que pour les fichiers qu'ont une extension...

Commentaire de malik7934 le 10/02/2005 19:25:54

pour autant que l'extension soit de 3 lettres! Ca marche plus avec .jpeg par exemple ;o)

Commentaire de Anthomicro le 10/02/2005 19:47:39

En même temps 3 lettres c'est juste une convention destinée à assurer la compatibilité avec les vieux PC sous DOS et 3.11...

Autant l'utiliser.

Bon après c'est vrai que ma fonction est foireuse...

Commentaire de WaNoU ThE EpSyLoN le 11/02/2005 15:58:04

oué mais pour les images en Jpeg c'est .jpg l'extension ....

Commentaire de malik7934 le 11/02/2005 16:49:49

les deux existent...
un autre exemple: gzip. Ezt encore plus sournois: .tar.gz ...  :-)

Commentaire de GRenard le 11/02/2005 18:27:38

JavaScript : .js

Commentaire de HyWaN le 12/02/2005 11:24:43

bonjour :)
merci d'avoir participé et donné votre avis ;o)
j'ai juste mis ce script sur phpcs car je pensais qu'il aurait pu etre utile pour certaines personnes ... (>GRenard)
et effectivement basename aurait pu etre intéressant mais avec les formats .js ou .jpeg (>Grenard,malik7934) ca devient pour ambigu. Et pour les .tar.gz, on pourrait faire une condition, mais le .tgz existe aussi :)
Et ce script était dédié pour un client, dont les membres de son site sont sous windo(be)z donc extension aux fichiers. De plus les membres du site seront des débutants affirmés.
:)
Voili voilou ;o)
Bonne journée tout le monde :)

Commentaire de viran le 16/04/2005 22:58:49

Je crois que GRenard cherche des amis sur cs et qu'il oublie un peu trop souvent que c'est pas facile d'etre dans un debutant tout les jours!!! non mais!

Commentaire de GRenard le 17/04/2005 04:06:23

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 !

Commentaire de HyWaN le 17/04/2005 11:05:15

:)
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 :)

Commentaire de pehel le 30/04/2005 00:12:41

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

Commentaire de monoceros01 le 09/11/2005 15:32:56

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 :)

Commentaire de astuces_jeux le 06/04/2007 22:25:34

ou les .php3

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales