[PHP] Problème de Fonction / Condition

Résolu
xxkirastarothxx Messages postés 415 Statut Membre -  
xxkirastarothxx Messages postés 415 Statut Membre -
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 ^^
Configuration: Windows XP
Firefox 2.0.0.15

3 réponses

  1. macgawel Messages postés 676 Statut Membre 89
     
    Bonjour.

    Essaye en "échappant" le slash :
    if ($func == "\/w"){echo 'test';}
    1
  2. xxkirastarothxx Messages postés 415 Statut Membre 40
     
    Aucun Changement :S

    Merci quand même :)
    d'autres idées ?
    1
    1. macgawel Messages postés 676 Statut Membre 89
       
      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
  3. xxkirastarothxx Messages postés 415 Statut Membre 40
     
    Oui Merci ça fonctionne, je me viens juste de me rendre compte du ""."$ChaineTab[i]"
    Merci Beaucoup :)

    Résolu.
    1