Menu

Expressions régulières "ne contient pas ..." [Résolu/Fermé]

Messages postés
155
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
- - Dernière réponse :  Djizeuss - 30 déc. 2010 à 01:12
Bonjour,

J'aimerais faire la fonction

Si la chaine ne commence pas par "ABC" alors la fonction "imagestring($im, 1, 14, 2, "$texte", $black);" est apliquée

Si la chaine commence par "ABC" alors la fonction "imagestring($im, 1, 14, 2, "$texte", $black);" n'est pas appliquée


J'ai déjà chercher sur http://www.commentcamarche.net/contents/php/phpreg.php3 mais je n'ai pas trouvé pour "ne contient pas"
Afficher la suite 

2 réponses

Messages postés
9701
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
7 juillet 2019
1074
0
Merci
Je ne sais pas comment faire et je ne connais pas le PHP, mais avec la logique, tu peux t'en sortir.
En gros tu fais :
if( /* test sur ABC*/) {imagestring($im, 1, 14, 2, "$texte", $black);}
Deux solutions logique peuvent s'appliquer : le "non" logique ou le "sinon" du if (en supposant que tu sache détecter une chaine commençant par ABC)
if( ! find("^ABC",string)) {imagestring($im, 1, 14, 2, "$texte", $black);}

ou alors :
if( find("^ABC",string) ) {/*ne fait rien */;}else {imagestring($im, 1, 14, 2, "$texte", $black);}

tu aura compris que ce que je veux dire par find("^ABC",string) c'est une fonction qui renvoie vrai so la chaine string commence par ABC.
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
114
-1
Merci
"ne contient pas" c'est très différent de "ne commence pas"
Comment faire de l'informatique si on ne voit pas des choses comme ça ?

donc pour "ne commence pas", c'est
if preg_match('~^(?!ABC)~')
Aka13
Messages postés
155
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
7 -
J'avais fait une faute dans le titre mais on ne peut plus changer c'est pour sa :s
Sinon pour ton code il y a un problème, ou est le nom de la chaine ?
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
114 -
ouais ben moi je vois ça , DANS LE MESSAGE:

Si la chaine ne commence pas par "ABC"......
Si la chaine commence par "ABC" ....

... mais je n'ai pas trouvé pour "ne contient pas"


Alors les excuses à la noix.....





Comme ce qui était le plus décrit était :
Si la chaine ne commence pas par "ABC"......
Si la chaine commence par "ABC" ....

j'ai répondu pour "ne commence pas"



Sinon, si c'est "ne contient pas" qu'il te faut, c'est
if preg_match('~^(?!.*?ABC.*\z)~')

Remarque:
je ne sais jamais si c'est \z ou \Z qu'il faut utiliser. Encore pas compris la différence.
Aka13
Messages postés
155
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
8 février 2016
7 -
Je peut savoir pourquoi tu me dit tout sa ?
C'est "ne commence pas" ce que je cherche...
Je t'es dit j'ai fait une faute dans le titre j'aurais du mettre "ne commence pas..."

Et sinon je t'es dit :
Sinon pour ton code il y a un problème, ou est le nom de la chaine ?
Heyquem: tu devrais faire avocat ou commercial si tu aimes tant jouer sur les mots. En attendant, ton arrogance "à la noix" ne nous aide pas beaucoup.

Aka: tu as trouvé la solution ? je suis intéressé aussi.