Comparaison de string ds instruction if (php)

Bonjour,
je souhaite faire tester si une chaine ($ch2) commence par ($chn1).
Je me demander s'il y avait moyen de faire de mm qu'une requete sql, styel : ...where <champ2>="<champ1>*"
Sachant que ce test doit dans trouver dans un if .
quelqu'un aurait-il une idée?
Configuration: Windows XP
Firefox 2.0.0.20

6 réponses

  1. Bonjour,

    pour comparer tes chaines avec une expression régulière tu peux utiliser la fonction "preg_match", elle renvoit true si l'expression régulière passée en premier paramètre est trouvée dans la chaine passée en deuxième paramètre.

    https://www.php.net/manual/fr/function.preg-match.php

    pour tester si $ch2 commence par $ch1 essai le code suivant :

    preg_match("/^$ch1.*$/", $ch2);


    notes :
    l'expression régulière doit être entre "/"
    le début de ligne est symbolisé par "^"
    la fin de ligne est symbolisé par "$"

    En espérant que ça t'ai aidé :)
    1. De même est-il possible d'utiliser la fonction "preg_match"pour vérifier si $ch1 est comprit dans $ch2 ?

      $ch1="ceciestmaphrase";
      $ch2="ma";

      en bref est-ce que l'on peut utiliser la fonction de telle manière ?

      preg_match("/*.$ch1.*$/", $ch2);

      merci encore de ta réponse ça m'a bien débloqué :))
  2. Oui tu peux l'utiliser pour verifier si $ch1 est comprit dans $ch2, mais la syntaxe est un peu différente :

    preg_match("/^.*$ch1.*$/", $ch2); 


    notes :
    . représente n'importe quel caractère
    * signie le caractère précédent 0 ou autant de fois que l'on veut
    donc .* signifie n'importe quelle suite de caractère

    Voila :)
    1. Un exemple ou je test si le début de $sString1 contient $sString2

      $sString1 = "ceciEstMaChaineDeTest";
      $sString2 = "ceci";

      if( substr($sString1, 0, strlen($sString2) ) == $sString2 ){
      echo $sString1." commence par ".$sString2;
      }else{
      echo $sString1." NE commence PAS par ".$sString2;
      }

      EnJoY !
      1. merci bcp pour vos reponse sa marche parfaitement! [résolut]
        1. merci beaucoup Defouille ! C'est pas le premier problème que je résous grâce a CCM. C'est cool !