Problème concatenation

Résolu
cs_kenar Messages postés 24 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 16 février 2007 - 15 févr. 2007 à 10:46
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 - 16 févr. 2007 à 11:09
Bonjour,
J'ai un petit problème avec la concatenation.

Quand je fait :      $conect = "C:\DATA\ $ville .CHF";
                               echo $conect;
Le résultat est :    C:\DATA\ maville .CHF    (il prend en compte les espaces autour de ma variable)

Et quand je fait    $conect = "C:\DATA\$ville.CHF";  (sans les espaces)
                               echo $conect;
Le résultat est :    C:\DATA\$ville.CHF      (il me met le nom de la variable et pas son contenu)

Pouriez vous m'aider à résoudre ce problème ?

29 réponses

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
15 févr. 2007 à 16:04
c'est a cause des antislash il faut les doubler !
si tu fais echo '\''; => '
si tu fais echo '\\'; => \

ton code doit etre:
$a = "C:\\DATA\";

$b = ".CHF";

$conect = $a .$ville.$b;

echo $conect;

--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
3
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
15 févr. 2007 à 17:10
Saell og blesuð

Remplacez tous vos espaces par des underscores : 'NANTES_Bellevue' au lieu de 'NANTES Bellevue' dans vos noms de fichiers ( on ne met jamais d'espace dans un nom de fichier ni de lettres accuentees etc ... )

Vilhjálms Sigurðsdóttir aka Frëyjá
3
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
15 févr. 2007 à 10:54
Avec plaisir petit homme
La fonction trim est là pour ça!

http://fr.php.net/trim

--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
0
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
15 févr. 2007 à 11:17
Saell og blesuð

$conect='C:\DATA\'.$ville.'.CHF';

Vilhjálms Sigurðsdóttir aka Frëyjá
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_kenar Messages postés 24 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 16 février 2007
15 févr. 2007 à 11:32
Merci pour vos réponses...
Je ne doit pas être très doué :
Pour la solution de vilhjalms, il me met "Parse error..."
Et pour celle de Teclis01 je ne vois pas comment l'utiliser vu que la fonction trim ne supprime que les espaces en début et en fin de chaîne.

Pour info je désir récupérer la variable $conect dans la fonction exec :
exec('$connect');
0
cs_kenar Messages postés 24 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 16 février 2007
15 févr. 2007 à 11:33
Oups !!!
Je rectifie :
exec('$conect')
0
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
15 févr. 2007 à 11:55
Saell og blesuð

Quel Parse error ? sur le $conect ou sur le exec ?

Vilhjálms Sigurðsdóttir aka Frëyjá
0
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
15 févr. 2007 à 12:04
- PHP est très sympa, il nous permet de mettre des variables dans du texte lorsque l'on utilise les doubles quote.
    Malheuresement pour lui, si tu met $ville.CHF,
    doit-il trouver la variable $ville.CHF ou $ville suivit de .CHF? Il ne saura pas faire la différence...

- Par contre, si tu utilise des simples quotes, PHP ne recherche pas les variables et t'affiches le texte directement.

Donc le mieux, a mon avis, est de bien séparer le texte et les variables pour ne pas faire d'amalgame.

D'où :

$connect = 'C:\DATA\' . $ville . '.CHF'; // comme l'a dit [auteurdetail.aspx?ID=551996 vilhjalms]
exec($connect);  //Sans les simple quote

et je pense que cela devrait fonctionner
0
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
15 févr. 2007 à 12:24
Saell og blesuð

Par ailleurs le format .chf correspond bien a pcAnywhere Remote Control File ?
Si c'est le cas il faut executer : %ProgramFiles%\Symantec\pcAnywhere\awrem32.exe %1 ou %1 correspond au fichier .chf ou faire un 'start fichier.chf' peut etre Je ne sais pas
Peut etre faut il backslasher les backslashes également ... je ne sais pas

Vilhjálms Sigurðsdóttir aka Frëyjá
0
cs_kenar Messages postés 24 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 16 février 2007
15 févr. 2007 à 14:42
Pour répondre à Vilhjalms, .chf correspond bien a pcAnywhere, je ne connais pas vraiment ce logiciel. C'est un projet que j'ai à faire (je suis en stage pour mon BTS informatique), je dois simplement lancer pcAnywhere en fonction de la ville que j'ai choisis précédament dans un formulaire...
Mon dossier C:\DATA\ regroupe plein de fichiers .chf en fonction du nom des différentes villes.
Si je met directement le chemin dans exec, ca marche ( exec('C:\DATA\maville.chf') ), la connection se lance.
Autrement, il m'indique le parse error au niveau de mon exec mais si j'enlève les simples quotes du exec, le parse error est au niveau du $conect. Et c'est pareil si je met $conect = 'C:\DATA\' . $ville . '.CHF'; (avec des espaces).

Je suis un peu perdu là...
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
15 févr. 2007 à 15:02
et ceci ?
$conect='C:\DATA\'.trim($ville).'.CHF';




--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
0
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
15 févr. 2007 à 15:14
Saell og blesuð

Comme dit avant il vous faut faire un exec() sur le programme pcanywhere et lui donner en argument votre fichier chf
Faites le test : demarrer > executer > notepad.exe
Puis : demarrer > executer > notepad.exe c:\boot.ini
Votre fichier.chf n'est pas un exécutable mais un fichier de configuration donc la function exec() ne peut pas reagir sauf via un start fichier.chf et cela depend de votre configuration server
De meme pour executer une application externe hors de votre http

Vilhjálms Sigurðsdóttir aka Frëyjá
0
cs_kenar Messages postés 24 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 16 février 2007
15 févr. 2007 à 15:34
Pourtant ca marche si je met   exec('C:\DATA\maville.chf');
Si je double-clic sur un de mes fichiers .chf dans C:\DATA\ sa marche aussi...

Et toujours le même problème avec $conect='C:\DATA\'.trim($ville).'.CHF'; parse error au niveau de cette ligne.
0
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
15 févr. 2007 à 15:47
Saell og blesuð

Que vous renvoie un echo $ville; ?

Vilhjálms Sigurðsdóttir aka Frëyjá
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
15 févr. 2007 à 15:55
ah bah oui j'ai pas fait gaffe il y a des slash (orthographe pas sure)
en fait c'est:
$conect='C:\\DATA\\'.trim($ville).'.CHF';
cette fois j'en suis sur

PS:pense a prendre un logiciel qui t'affiche la coloration syntaxique et fais pas comme moi lis pas la moitié

--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
0
cs_kenar Messages postés 24 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 16 février 2007
15 févr. 2007 à 15:56
Je récupère la variable $ville avec un    $ville = $_POST["ville"];
Si je fais un echo $ville; ca affiche bien le nom de la ville que j'ai selectionné précédament dans un formulaire...
0
cs_kenar Messages postés 24 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 16 février 2007
15 févr. 2007 à 16:02
Je viens d'essayer un autre truc :



$a = "C:\DATA";



$b = ".CHF";



$conect = $a . $ville . $b;




echo $conect;

Et là j'ai parse error au niveau de $b
Comprend pas...
0
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
15 févr. 2007 à 16:09
Saell og blesuð

Teclis01 >> cf un de mes post precedent :-)

Vilhjálms Sigurðsdóttir aka Frëyjá
0
cs_kenar Messages postés 24 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 16 février 2007
15 févr. 2007 à 16:15
YEAAAH !!!!
Sa marche enfin ....
Merci à tous de m'avoir aidé, "Ca me retir une fière chandelle du pied"
@+ et encore bravo pour votre attention et votre rapidité...
Tchussss.....
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
15 févr. 2007 à 16:16
--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie
0
Rejoignez-nous