Comparaison de string ds instruction if (php)

Biohazard-34 -  
Defouille Messages postés 404 Statut Membre -
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?
A voir également:

6 réponses

Defouille Messages postés 404 Statut Membre 54
 
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é :)
3
Biohazard-34
 
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é :))
0
Defouille Messages postés 404 Statut Membre 54
 
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 :)
2
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
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
biohazard-34
 
merci bcp pour vos reponse sa marche parfaitement! [résolut]
0

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

Posez votre question
Biohazard-34
 
merci beaucoup Defouille ! C'est pas le premier problème que je résous grâce a CCM. C'est cool !
0
Defouille Messages postés 404 Statut Membre 54
 
Avec plaisir ;)
0