Page 1 sur 2
Enlever l'extension d'un fichier dans une variable
Posté : 20 mars 2006, 19:50
par djmustru
Bonjour a tous,
Je cherche comment enlever l'extension d'un nom de fichier d'une variable :
ex :
$var = "jeu.zip";
aprés traitement :
$var = "jeu";
Merci d'avance.
Posté : 20 mars 2006, 20:06
par Ryle
Bonjour,
Il y a probablement plus simple, mais la fonction
strrpos() te permet de retrouver la dernière occurence d'un caractère. Il te suffit de donc de trouver le dernier point dans le nom du fichier et de faire un
substr() pour récupérer la chaine jusqu'à cette position

Posté : 20 mars 2006, 20:06
par fab
<?php
$file_name = "jeu.zip";
$file_array = explode('.',$file_name);
$extension = count($file_array) - 1;
$new_file_name = substr($file_name,0,strlen($file_array[$extension]));
echo $new_file_name;
?>
a tester
explode()
count()
substr()
strlen()
Posté : 20 mars 2006, 20:08
par djmustru

MErci beaucoup !!!
Posté : 20 mars 2006, 20:12
par djmustru

Ca marche pas...
Ca m'affiche les 3 premiers caractères de la variable et ca enleve tous le reste...
Car moi j'effectue ce traitement sur plusieurs enregistrement de longueur différent chacun...
Posté : 20 mars 2006, 20:27
par jpaul

Ca marche pas...
Ca m'affiche les 3 premiers caractères de la variable et ca enleve tous le reste...
Car moi j'effectue ce traitement sur plusieurs enregistrement de longueur différent chacun...
J'ai bricolé ça vite fait :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
<html>
<head>
<title>Essais</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
reset($_POST);
while (list($key, $val) = each($_POST )) {
echo "<BR>$key -> $val";
$$key=$val;
}
//phpinfo();
if (isset($FICHIER)) {
$path_parts = pathinfo($FICHIER);
echo "<BR>".$path_parts['dirname'], "\n";
echo "<BR>".$path_parts['basename'], "\n";
echo "<BR>".$path_parts['extension'], "\n";
echo "<BR><BR>Ce qui t'intéresse : ".substr($path_parts['basename'],0,strlen($path_parts['basename'])-strlen($path_parts['extension'])-1);
}
echo "<FORM action=";
echo $_SERVER["PHP_SELF"];
echo " method="post">";
echo "Fichier : <INPUT TYPE=TEXT NAME=FICHIER>";
echo "</FORM>";
?>
</body>
</html>
Ca traite aussi un fichier qui est présenté avec son path.
Exemple : (/temp/toto.txt) ou le nom du fichier seul (toto.txt) dans les 2 cas ça devrait t'afficher toto.
pathinfo permet davoir les éléments dans un tableau, ensuite il suffit de prendre la partie de basename qui commence en position 0 et qui a une longueur égale à la longueur de basename - la longueur de l'extension et encore -1 pour le point.

Posté : 20 mars 2006, 20:31
par djmustru

ok, merci pour tout, ca fait vraiment plaisir !
Re: Enlever l'extension d'un fichier dans une variable
Posté : 27 sept. 2012, 15:46
par TGuillard
Bonjour,
La solution précédente était mieux une fois corrigée ça donne ça :
// Je met le nom de mon fichier dans une variable
$file_name = "nomDeFichier.jpg";
// J'explose dans un tableau à chaque fois que je rencontre un point
$file_array = explode ('.',$file_name);
// Je récupère l'indice dans le tableau de l'extension "jpg", soit le dernier élément
$extension = count ($file_array) - 1;
// Je découpe en enlevant l'extension cad (la taille de "jpg" + la taille du point d'où le -1)
$New = substr ($file_name,0,strlen($file_name) -strlen ($file_array[$extension])-1);
// J'affiche
echo $New;
Re: Enlever l'extension d'un fichier dans une variable
Posté : 27 sept. 2012, 15:54
par guitoup
Hello,
Pour récupérer ton nom de fichier sans l'extension, tu as la fonction pathinfo() qui te retourne un tableau avec les infos suivantes :
http://fr2.php.net/manual/en/function.pathinfo.php
L'index filename te retournant le nom du fichier sans l'extension.
$fileInfo = pathinfo($file);
$fileInfos['dirname']
$fileInfos['basename']
$fileInfos['extension']
$fileInfos['filename']
Re: Enlever l'extension d'un fichier dans une variable
Posté : 27 sept. 2012, 16:34
par xTG
Déterrer un topic datant d'il y a 6 ans pour paraphraser des réponses existantes...
Vous avez pas honte ?
Allez plutôt répondre à des sujets récents non mais !

Re: Enlever l'extension d'un fichier dans une variable
Posté : 27 sept. 2012, 16:38
par guitoup
Non j'ai pas honte,
je débute en aidage de personne sur forum

J'ai pas fait gaffe à la date du topic.
Et je réponds aussi a des questions plus récentes !
Re: Enlever l'extension d'un fichier dans une variable
Posté : 21 oct. 2013, 11:55
par passe par là
..et en plus ça sert encore pour ceux qui recherche l'info, alors merci !
Re: Enlever l'extension d'un fichier dans une variable
Posté : 31 oct. 2013, 23:09
par to175175
Salut Moi aussi je réponds

et je demande en même temps
est ce que ça serait pas mieux ceci, si ça marche (?) :
<?php
echo str_replace('.php', '', $file);
echo str_replace('.html', '', $file);
echo str_replace('/', '', $file);
//etc...
?>
Re: Enlever l'extension d'un fichier dans une variable
Posté : 01 nov. 2013, 11:32
par moogli
Salut,
Non car trop limité et contraignant vue que tu doit indiquer l'extension.
Les solutions pathinfo et substr + strrpos sont les plus générique (et on oubli l'hérésie de l'explode

)
@+
Re: Enlever l'extension d'un fichier dans une variable
Posté : 24 juil. 2014, 05:50
par vincentshooter
bonjour voila je voudriez avoirs la variable $fichierrel de $fichier mai sans le .jpg car le rel ne prend pas le .jpg
en vous remercier d'avance
<?php
if ($dossier = opendir('core/img'))
{
while (false !== $fichier = readdir($dossier))
{
if ($fichier != '.' && $fichier != ".." )
{
echo '<li><a rel=" ' .$fichierrel. ' " href="core/page/'.$fichier.'.html"><img src="core/img/'.$fichier.' "></a></li>';
}
}
closedir($dossier);
}
?>