Aller au contenu

Comment on écrit "contient" en php


Sujets conseillés

Posté

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:

<?php
if ( ($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

Posté (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é par NorSeb
Posté

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).

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...