[PHP] Problème de Fonction / Condition

Résolu/Fermé
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 - 17 juil. 2008 à 16:28
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 - 17 juil. 2008 à 17:31
Bonjour à tous,

Je suis en train de développer un chat en php, mais lors de la création je suis tombé sur un problème que je n'arrive ni à comprendre ni à résoudre dans la partie d'envoie de message privé:

<?php
function PremiersMots($MaChaine, $apartir, $jusqua)   
{   
   $ChaineTab=explode(" ",$MaChaine);   
   for($i=$apartir; $i<$jusqua; $i++)   
   {   
      $NouvelleChaine.=" "."$ChaineTab[$i]";   
   } 
   return $NouvelleChaine;   
}
$func = PremiersMots("/w kira test", 0, 1);
echo $func;
if ($func == "/w"){echo 'test';}
?>


$func retourne bien "/w" mais la condition n'est pas remplie puisque 'test' ne s'affiche pas...
... Pourtant si $func retourne "/w" je ne comprends pas comment "/w" n'est pas équivalent à "/w" oO

Voila donc... Help Plz ^^
A voir également:

3 réponses

macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
17 juil. 2008 à 16:38
Bonjour.

Essaye en "échappant" le slash :
if ($func == "\/w"){echo 'test';}
1
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
17 juil. 2008 à 16:42
Aucun Changement :S

Merci quand même :)
d'autres idées ?
1
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
17 juil. 2008 à 17:26
Bon, après tests :
- $NouvelleChaine.=" "."$ChaineTab[$i]"; me renvoie une erreur (parce que $NouvelleChaine n'est pas défini avant. Peut-être que tu n'as pas ce problème chez toi...)

- J'ai trouvé le "problème" ! Etudions le code, dans le cas PremiersMots("/w kira test", 0, 1)
// J'ai rajouté cette ligne pour parer au problème précédent...
$NouvelleChaine = "";
   $ChaineTab=explode(" ",$MaChaine);
// => $ChainTab = Array("/w", "kira", "test")   
// Vu les paramètres, on n'exécute la boucle qu'une seule fois
   for($i=$apartir; $i<$jusqua; $i++)   
   {   
      $NouvelleChaine .= " "."$ChaineTab[$i]";   
// $NouvelleChaine = " "."$ChaineTab[0]";
// $NouvelleChaine = " "."/w";
// $NouvelleChaine = " /w";
   } 
   return $NouvelleChaine;   

Tu rajoutes un espace avant le premier mot !
=> $func n'est pas égal à "/w" mais à " /w"
0
xxkirastarothxx Messages postés 378 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 22 mars 2013 40
17 juil. 2008 à 17:31
Oui Merci ça fonctionne, je me viens juste de me rendre compte du ""."$ChaineTab[i]"
Merci Beaucoup :)

Résolu.
1