Nom du fichier sans l'extension

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