Asgard Posté 27 Octobre 2005 Posté 27 Octobre 2005 Bonjour, Au risque de passer pour un gros newbie du PHP (ce qui est le cas), je préfère vous demander... En fait voilà, je voudrais savoir comment on peut écrire l'équivalent de "contient le string" en php... Par exemple voici à quoi ressemble mon code: <?phpif ( ($mavariable != "domaine1.com")&& ($mavariable != "domaine2.fr") && ($mavariable != "domaine3.net") ) {mafonction... }?> Par quoi dois-je remplacer le symbole != pour que ma fonction s'applique pas seulement à "domaine1.com", mais aussi à "sousdomaine.domaine1.com" ou à "mondomaine1.com"? Je ne sais pas si je suis très clair, alors excusez-moi d'avance... J'espère que vous voyez ce que je demande Merci d'avance
NorSeb Posté 27 Octobre 2005 Posté 27 Octobre 2005 (modifié) Salut, Tu peux utiliser la fonction ereg() qui cherche un bout de chaine dans une autre. Dans ton cas ca donnerai : if (!ereg($mavariable, "domaine1.com") && !ereg($mavariable, "domaine2.com") && ...) { // ta fonction} Dans ce cas tu teste la chaine $mavariable est présente dans "domaine1.com" et domaine2.com Modifié 27 Octobre 2005 par NorSeb
TheRec Posté 27 Octobre 2005 Posté 27 Octobre 2005 Bonjour, la solution proposée par NorSeb fonctionne mais il est tout de meme conseillé d'utiliser des fonctions moins lourde pour une tâche aussi simple, préfère un strpos : if ((strpos($mavariable, "domaine1.com") === false) && (strpos($mavariable, "domaine2.com") === false) && ...) { // ta fonction} Le résultat est le même, mais au niveau performance c'est préférable...si tu te sent plus à l'aise avec les ereg ce n'est pas si grave (Mais en fait tu ferais mieux d'utiliser preg_match si tu as besoin d'expression rationnelles, c'est un conseil tiré du manuel PHP, pour une raison de preformances et aussi parce que les "preg" sont plus puissantes) P.S. : Note "===" qui est un opérateur d'égalité identique, car strpos peut retourner la valeur entière (int) 0 , qui correspond à la position du premier caractère e la chaîne... et lorsque qu'aucune occurence n'est trouvé strpos va retourner "false" est équivalente à 0 en entier, il faut donc s'assurer que la réponse est === false et non juste == à false ... (=== vérifie que les type des variables comparés soient identiques... alors que == s'occupe d'interpréter les valeurs pour les comparer).
Asgard Posté 29 Octobre 2005 Auteur Posté 29 Octobre 2005 Merci à vous pour vos réponses... Je vais essayer selon vos conseils
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant