Comparaison de string ds instruction if (php)

Fermé
Biohazard-34 - 13 janv. 2010 à 15:22
Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 - 14 janv. 2010 à 09:29
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 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
13 janv. 2010 à 16:31
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
14 janv. 2010 à 09:07
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 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
14 janv. 2010 à 09:15
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 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
13 janv. 2010 à 16:31
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
14 janv. 2010 à 00:07
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
14 janv. 2010 à 09:28
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 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
14 janv. 2010 à 09:29
Avec plaisir ;)
0