Une condition unpeu spécial

Eléphant du PHP | 333 Messages

19 janv. 2007, 08:02

Voici, c'est unpeu la suite d'un autre post que j'ai is mais avec une nouvelle idée de solution.....

Avec une condition, je m'explique

J'ai deux variable soit:

$realhost = "modemcable184.136-203-24.mc.videotron.ca"
$bddhost = "modemcable"

j'aimerais savoir comment dire: Es-ce que l'on retrouve $bddhost dans $realhost.

voilà c'est tout !!! avez vous des suggestion
Ce n'est pas toujours facile d'essayer, mais c'est toujours vallorisant lorsqu'on y arrive !!!

Apprenez, ne le faite pas faire par les autres.

Eléphant du PHP | 259 Messages

19 janv. 2007, 09:41

hello,

strpos() ou substr_count() peuvent te suffire si la chaine à rechercher n'est pas un groupe de lettres qu'on peut retrouver n'importe comment dans la langue francaise (regarde la notice de substr_count pour mieux comprendre ce que je suis en train de dire)

sinon tu peux passer par une regexp, plus compliqué, mais plus fiable.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 janv. 2007, 09:45

Attention, avant PHP5, la fonction strpos() ne fonctionne que pour chercher une caractère ;)

Il vaut mieux préférer la fonction strstr(), même si depuis PHP5, elles peuvent s'utiliser de manière identique. :D

Sinon, pourquoi passer par une expression régulière ? :-k
On a le motif exact à chercher, une expression régulière sera donc beaucoup plus gourmande en ressource pour un résultat identique ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 259 Messages

19 janv. 2007, 10:03

dans le cas présent, en effet l'expression reguliere est inutile.

je donnais juste l'exemple pour les cas ou le "masque" est particulier.
cf la notice de substr_count -> l'exemple de rechercher "est" dans "ceci est un test" qui donne un résultat erronné et qu'on ne peut contourner que via une regexp :)

Eléphant du PHP | 333 Messages

21 janv. 2007, 00:43

Je ne suis pas certain de tous vous avoir bien compris, je fais quelques recherches, et tests sur les fonctions que vous m'avez données. et je reviens...

Merci
Ce n'est pas toujours facile d'essayer, mais c'est toujours vallorisant lorsqu'on y arrive !!!

Apprenez, ne le faite pas faire par les autres.

ViPHP
ViPHP | 1961 Messages

21 janv. 2007, 01:04

Bonsoir,

Je ferait comme zeus, je te conseillerait d'utiliser soit strstr() ou bien stristr() en fonction de ce que tu voudras.

Les deux fonctions sont identiques à l'exception que l'une compare (recherche) en tenant compte de la "case" (distinction des majuscules et majuscules), l'autre non.

Pour strstr() 'A' sera différent de 'a' alors que pour stristr() c'est la même chose, c'est un a.

Ces fonctions retournent une sous-chaine du premier paramètre qui commence à la première occurrence du second paramètre et se termine à la fin de la chaine du premier paramètre.
Deux exemples repris de la documentation en ligne de PHP
Pour strstr()
<?php
$email = '[email protected]';
$domaine = strstr($email, '@');
echo $domaine; // @example.com
?> 
Pour stristr()
<?php
$email = '[email protected]';
echo stristr($email, 'e');
// Affiche [email protected]
?> 
Mais le mieux c'est que tu fasses un tour dans la doc pour voir deux fonctions.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein