strpos simple mais ne marche pas RESOLU
9 messages
• Page 1 sur 1
- hx.jonathan
- WRInaute discret

- Messages: 162
- Inscription: 2 Mar 2005
strpos simple mais ne marche pas RESOLU
Salut,
J'ai un problème vraiment bizarre. J'utilise un simple strpos pour savoir si des caractères spéciaux sont présents dans une chaîne mais je ne parviens pas à faire fonctionner ce simple exemple :
Y aurait-t-il quelque chose au niveau des versions de php ou autre ?
J'utilise wampserver 2.0
PHP 5.3.0
apache 2.2.11
mysql 5.1.36
C'est la première fois que j'ai un souci sur un script aussi basique.
D'avance merci bcp
John
J'ai un problème vraiment bizarre. J'utilise un simple strpos pour savoir si des caractères spéciaux sont présents dans une chaîne mais je ne parviens pas à faire fonctionner ce simple exemple :
- Code: Tout sélectionner
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring,$findme);
echo $pos.'<br/>';
Y aurait-t-il quelque chose au niveau des versions de php ou autre ?
J'utilise wampserver 2.0
PHP 5.3.0
apache 2.2.11
mysql 5.1.36
C'est la première fois que j'ai un souci sur un script aussi basique.
D'avance merci bcp
John
Dernière édition par hx.jonathan le Lun Juin 28, 2010 16:57, édité 1 fois.
-

Zecat - WRInaute accro

- Messages: 12003
- Inscription: 1 Mar 2005
Re: strpos simple mais ne marche pas
C'est normal ... strpos est bugguée lorsque la reponse est octet offsset 0 ...
Moi perso je faits toujours ca :
$mystring = 'abc';
$findme = 'a';
$pos = strpos('*'.$mystring,$findme);
et du coup je test si $pos>0
Moi perso je faits toujours ca :
$mystring = 'abc';
$findme = 'a';
$pos = strpos('*'.$mystring,$findme);
et du coup je test si $pos>0
- hx.jonathan
- WRInaute discret

- Messages: 162
- Inscription: 2 Mar 2005
Re: strpos simple mais ne marche pas
Ah ben c cool alors. Merci pour ton aide.
John
John
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Re: strpos simple mais ne marche pas RESOLU
Non il est pas buggué. Il suffit de savoir l'utiliser correctement ^^
Par exemple tant qu'on trouve blanc se traduit:
while (strpos('blanc',$str) !== FALSE)
A noter les opérateurs (!== et ===) sont différents de (!= et ==).
Par exemple tant qu'on trouve blanc se traduit:
while (strpos('blanc',$str) !== FALSE)
A noter les opérateurs (!== et ===) sont différents de (!= et ==).
-

Zecat - WRInaute accro

- Messages: 12003
- Inscription: 1 Mar 2005
Re: strpos simple mais ne marche pas RESOLU
je trouve perso plus simple de n'avoir a faire qu'un test numerique et pas d'ajouter un test vrai faux. Juste une question de choix.
Et si c'est un bug pour une commande de ne pas savoir retourner la position 0 ...
Et si c'est un bug pour une commande de ne pas savoir retourner la position 0 ...
-

Zecat - WRInaute accro

- Messages: 12003
- Inscription: 1 Mar 2005
Re: strpos simple mais ne marche pas RESOLU
YoyoS a écrit:Non c'est logique, ca te retourne la position de la chaine si elle existe. Donc 0 (false) ne peut pas être retourné en cas d'erreur.
0 c'ets pas false, c'est offset 0 ... et pour retourner false d'autres langages retournent -1
du coup
si pos >0
ok trouvee
sinon
pas trouvé
fin de si
C'est quand meme plus cool que devoir faire deux tests (un pour chaine trouvée et un second pour position trouvée). A mon avis
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Re: strpos simple mais ne marche pas RESOLU
Quand je dis 0 == false c'est dans le test d'existence.
Essaie de faire
Et non réfléchis 2 secondes, c'est pas normal de dire
Lis la doc de strpos et tu verras que c'est:
Si pos vaut 0 (après le test d'existence !== FALSE) ca veut dire que la chaine est a été trouvée en position 0. Maintenant arrête de crasher des boules de poils, c'est pas moi qui ait inventé la fonction. Si ca été fait comme ça c'est qu'il y a une raison j'imagine, que ça soit pour les performances ou pour trouver quelques chose de générique. C'est la doc c'est comme ça mon chat
Il est même marqué en rouge dans un cadre rouge ici http://www.php.net/manual/fr/function.strpos.php comment l'utiliser ^^
Essaie de faire
- Code: Tout sélectionner
$var1 = 0;
$var2 = false;
if (!$var1 && !$var2)
-> On entre dans le if
Et non réfléchis 2 secondes, c'est pas normal de dire
- Code: Tout sélectionner
si pos >0
ok trouvee
sinon
pas trouvé
fin de si
Lis la doc de strpos et tu verras que c'est:
- Code: Tout sélectionner
si pos !== FALSE
ok trouvee
sinon
pas trouvé
fin de si
Si pos vaut 0 (après le test d'existence !== FALSE) ca veut dire que la chaine est a été trouvée en position 0. Maintenant arrête de crasher des boules de poils, c'est pas moi qui ait inventé la fonction. Si ca été fait comme ça c'est qu'il y a une raison j'imagine, que ça soit pour les performances ou pour trouver quelques chose de générique. C'est la doc c'est comme ça mon chat
Il est même marqué en rouge dans un cadre rouge ici http://www.php.net/manual/fr/function.strpos.php comment l'utiliser ^^
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Ca parait simple pourtant...mais ca ne marche pas
- Simple réécriture en local qui ne marche pas
- Htaccess tout simple qui marche pas
- Un truc tout simple... qui marche pas [REGLE]
- une ligne de code toute simple qui marche pas (snif)
- [Résolu] Question simple
- [RESOLU]Probleme tres simple CSS menu
- la fonction strpos();
- [résolu] htmlentities ne me converti pas les guillemets simple !
- [résolu]problème d'une simple redirection .php en .html
- Parts de marché des moteurs en Europe (Février 2006)
- Parts de marché des moteurs aux USA (Avril 2008)
- l'URL Rewriting expliqué aux débutants
- Parts de marché des moteurs aux USA en Juillet 2008 (Hitwise)
- PDF Quick View : l'outil de Google pour voir les PDF
- Résultats financiers de Google au 3ème trimestre 2008 : pas de crise chez Google !
- Transformer de simples citations en liens
- 2,5 milliards de requêtes par jour sur Google en juillet 2009
- Transformer des simples citations de votre site en liens
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
