OVH Cloud OVH Cloud

debutant et probleme extension

5 réponses
Avatar
Laforest
Bonjour,

Je cherche la solution la plus simple pour, dans une variable contenant un
nom de fichier, ôter son extension s'il y en a une (la variable peut aussi
être un nom de répertoire.

Bref, n'y a t'il pas un moyen de récupérer juste le nom sans l'extension (je
comptais sur pathinfo et [basename] mais manque de bol, il y a aussi
l'extension.

C'est un petit problème facilement résolvable, mais ne connaissant pas
encore bien php, je cherche la sol la plus simple.

Merci

Michel

5 réponses

Avatar
Baroiller Pierre-Emmanuel
explode(".",basename($fichier))

c bourrin mais ça te retournera un tableau avec
[0] = nom du fichier
[1] = extension
[..] = extensions suivantes

mais bon.. c'est du bourrin. :D


"Laforest" a écrit dans le message de
news:411168be$0$29424$
Bonjour,

Je cherche la solution la plus simple pour, dans une variable contenant un
nom de fichier, ôter son extension s'il y en a une (la variable peut aussi
être un nom de répertoire.

Bref, n'y a t'il pas un moyen de récupérer juste le nom sans l'extension
(je

comptais sur pathinfo et [basename] mais manque de bol, il y a aussi
l'extension.

C'est un petit problème facilement résolvable, mais ne connaissant pas
encore bien php, je cherche la sol la plus simple.

Merci

Michel


Avatar
Lascap
Baroiller Pierre-Emmanuel wrote:

explode(".",basename($fichier))

c bourrin mais ça te retournera un tableau avec
[0] = nom du fichier
[1] = extension
[..] = extensions suivantes

mais bon.. c'est du bourrin. :D




Un peu moins bourrin, mais toujours en partant du principe que
l'extension est après le dernier point

$t = explode(".", basename($fichier));

$n = count($t);
if($n == 0)
{
return FALSE, écriture d'erreur, n'importe quoi
}
elseif($n == 1)
{
// fichier sans extension... ça existe :)
$nomSansExt = $fichier; // ou $t[0]
$ext = "";
}
else
{
$nomSansExt = $t[0];
$i = 1;

// pour les cas ou il y a plusieurs . dans le nom de fichier
while($i < ($n-1))
{
$nomSansExt .= "." . $t[$i];
}
$ext = $t[$i];
}

Ceci dit, si on est sur que les fichiers qui arrivent sont du genre
xxxx.xxx , la méthode de PE (tu permets que je t'appelle PE?) est très
bien :)

Lascap

Avatar
Laforest
Baroiller Pierre-Emmanuel wrote:

explode(".",basename($fichier))

c bourrin mais ça te retournera un tableau avec
[0] = nom du fichier
[1] = extension
[..] = extensions suivantes

mais bon.. c'est du bourrin. :D

Merci.

Perso, vu le temps qu'il a fallu pour que passe mon message, mais bon, c'est
les vacances, donc perso j'ai fait strtok($fichier,".") avec bien entendu
$fichier contenant le nom du fichier.

Voilà, si certains ont mieux, n'hésitez pas.

Merci

A tchao

Avatar
Stephane Pineau
Le 06 Aug 2004 09:41:29 GMT, Laforest écrivait:

Je cherche la solution la plus simple pour, dans une variable contenant un
nom de fichier, ôter son extension s'il y en a une (la variable peut aussi
être un nom de répertoire.


$short=substr($fichier,0,strrpos($fichier,"."));

De façon générale pour la mapiluation des noms de fichiers et/ou de path tu
trouveras un grand nombre de fonctions utiles dans les fonctions de
manipulation de chaines str*

Cdlt,
Stéph'

--
AcroDict : Dictionnaire francophone des acronymes informatiques
<URL:http://www.teaser.fr/~spineau/acrodict/index.htm>
PHP Page : Script PHP3 Gratuits (Forum, Gestionnaires BDD, etc..)
<URL:http://steph.pineau.free.fr/php/index.php>

Avatar
Leonick
"Laforest" a écrit dans le message de
news:411168be$0$29424$
Bonjour,

Je cherche la solution la plus simple pour, dans une variable contenant un
nom de fichier, ôter son extension s'il y en a une (la variable peut aussi
être un nom de répertoire.

Bref, n'y a t'il pas un moyen de récupérer juste le nom sans l'extension (je
comptais sur pathinfo et [basename] mais manque de bol, il y a aussi
l'extension.

Si l'extension est connue, il suffit de faire

$lenom= basename ($path,".php") et on obtient juste le nom.

---
Leonick
http://bike-in-ventoux.champignytriathlon.org les photos et le récit de 1000 km
en vélo autour du Mont Ventoux