Page 1 sur 1

Ajouter un Underscore entre deux variables

Posté : 15 juin 2010, 19:59
par Castor Gaspard
Bonjour,

Après deux heures de tests et de recherche infructueux, je me tourne vers vous. :mrgreen:

je voudrai renommer des fichiers sous la forme $a_$b, $a et $b correspondant à deux variables récupérées précédemment.

Or, je n'y arrive pas. J'ai cru comprendre que l'Underscore avait un usage particulier en Php...

En revanche, j'arrive à renommer mes fichiers $a>$b ou $a-$b, mais cette forme ne correspond pas à l'usage que j'attends.

Merci pour votre aide. :D

Cordialement,

Gaspard

Re: Ajouter un Underscore entre deux variables

Posté : 15 juin 2010, 21:37
par Ryle
Normalement il te suffit de concatener tes chaines pour en obtenir une nouvelle qui correspondra au nom de ton fichier :
$nomFichier = $a . "_" . $b;

Re: Ajouter un Underscore entre deux variables

Posté : 15 juin 2010, 22:34
par Castor Gaspard
Bonsoir,

Merci, Ryle, pour ton aide.

Hélas, ça ne fonctionne pas. :cry:

Voici mon code pour renommer le fichier:

Code : Tout sélectionner

rename("large/$file", "large/$name . '_' . $i.jpg");

$name = 'mardi"
$i = [compteur]


J'ai inversé les guillemets et les quotes de la suggestion, car le code ne fonctionne pas entre quotes ('large/$file'...

Avec cette syntaxe ou un code voisin, mes fichiers renommés portent toujours les marques de la concaténation, comme si Php ne l'interprétait pas.

Merci. :mrgreen:

Gaspard

Re: Ajouter un Underscore entre deux variables

Posté : 15 juin 2010, 22:43
par stealth35
tu fermes pas les guillemet c'est normal
le . concatène une chaine, si elle est pas fermer ca marche pas
$toto = 'tata';

echo $toto;
//tata

echo "$toto"; 
//tata

echo '$toto';
//$toto

echo $toto . 'tata';
//tatatata

Re: Ajouter un Underscore entre deux variables

Posté : 15 juin 2010, 23:18
par Castor Gaspard
Bonsoir

Merci, Stealth !

Mais, je suis un âne sur ce point, irrémédiablement fâché avec la concaténation. Pourtant, j'ai lu plusieurs dizaines, voire centaines, d'articles à ce sujet. D'ailleurs, ce point (sans mauvais jeu de mots) m'empêche souvent d'aller vite dans mes modestes développements.

Aussi, sans être désobligeant, j'ai lu et testé ton explication. Je pense l'avoir comprise, mais n'ai pas su la transposer.

Rename entre quotes ne fonctionne pas sur mes serveurs distant et local, au demeurant.

Cependant, j'ai fini par résoudre mon problème avec la "Méthode à Mimile", peu satisfaisante sur le plan intellectuel...

Code : Tout sélectionner

$sep = '_'; rename("large/$file", "large/$name$sep$i.jpg");
Voilà, voilà.

Sinon, je me sors en général de la concaténation avec .= qui me semble plus clair. :wink:

Je mets résolu au sujet pour ne pas encombrer le forum.

Merci à tous. :D

Cordialement,

Gaspard

Re: Ajouter un Underscore entre deux variables

Posté : 15 juin 2010, 23:23
par stealth35
rename("large/$file", "large/$name" . '_'  . $i."jpg");

Re: Ajouter un Underscore entre deux variables

Posté : 15 juin 2010, 23:40
par Castor Gaspard
Bonsoir,

Merci Stealth, en effet, ça fonctionne...

En fait, j'ai du mal à me débarrasser de l'idée qu'il faut arrêter le traitement et le reprendre après la concaténation. Bon, je méditerai ton exemple, dont j'essaierai de m'imprégner.

Quoiqu'il en soit, je t'exprime encore ma gratitude.

Cordialement,

Gaspard

Re: Ajouter un Underscore entre deux variables

Posté : 15 juin 2010, 23:43
par stealth35
Bonsoir,

Merci Stealth, en effet, ça fonctionne...

En fait, j'ai du mal à me débarrasser de l'idée qu'il faut arrêter le traitement et le reprendre après la concaténation. Bon, je méditerai ton exemple, dont j'essaierai de m'imprégner.

Quoiqu'il en soit, je t'exprime encore ma gratitude.

Cordialement,

Gaspard
c'est pareil dans la plus part des langages finalement le plus perturbant c'est que ca soit un . a la place d'un + , et que les variable sont interprété dans les double quotes :wink:

Re: Ajouter un Underscore entre deux variables

Posté : 17 juin 2010, 18:52
par Camusensei
Pour information la raison pour laquelle ton "$a_$b" ne donnait pas ce que tu voulais, c'est qu'il ne trouvait pas la variable $a_ car '_' est un caractère autorisé dans les noms de variables.