cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
10 févr. 2006 à 01:55
sidouo
Messages postés15Date d'inscriptionmercredi 11 juin 2008StatutMembreDernière intervention31 mars 2010
-
9 août 2008 à 23:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
sidouo
Messages postés15Date d'inscriptionmercredi 11 juin 2008StatutMembreDernière intervention31 mars 2010 9 août 2008 à 23:43
salut tout le monde quelqu'un peux me dire l'interdiction
de plusieurs caracteres en utilisant la notion des expression reguliere.
ce que j'ai fais..
function verifpseudou($variable)
{
$syntaxe="#[a-zA-z0-9_.-]#";
return ((preg_match($syntaxe,$variable))?true:false);
}
mais ca va pas marche... lorsque je tape un?, <, > il les accept?
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 2 janv. 2007 à 19:18
bah en même temps si tu fous les en-têtes dans le fichier je peux rien y faire mdr ... dans ce cas tous les scripts ont des failles XD
Enfin bon l'image ne s'affichera pas ;)
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 2 janv. 2007 à 15:32
C'est pas vraiment que getimagesize() à une faille c'est que simuler une image n'est pas très dur... .. . ;o)
@ tchaOo°
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 29 déc. 2006 à 17:15
kankrelune > bah si getimagesize() a une faille en elle-même, j'y peux rien ;)
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 29 déc. 2006 à 17:01
Effectivement comme en C la preincrementation est plus rapide que la postincrementation... et ce pour les même raisons... .. .
@ tchaOo°
ps : au fait Anthomicro... ton code d'upload sécurisé à une faille... getimagesize() est contournable... .. . ;o)
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 29 déc. 2006 à 09:25
zoukozouko => j'y penserais la prochaine fois ;-)
C'est vrai que je pense pas bcp à donner un peu de code en exemple, l'habitude de devoir apprendre seul .... désolé.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 29 déc. 2006 à 01:07
function mafonction($variable)
{
return ++$variable;
}
function mafonction2($variable)
{
return $variable++;
}
echo mafonction(1);
echo mafonction(1);
zoukozouko
Messages postés148Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention21 janvier 2009 29 déc. 2006 à 00:11
ah parfait.
par contre, si je peux me permettre, c'est justement parce qu'elle sont différente que tu pourrais les comparer.
Si ca focntionne comme en C/C++, ce qui est probablemetn le cas, vu la ressemblance des des langages, alors tu devrais avoir de meilleurs résultats. Tu dois avoir des fichiers tout faits pour les tests, si tu peux tester ca, sans trop te casser la tete, ca pourrait etre utile, (a toi comme au autres).
Si par contre ca fonctionne differement, alors explique moi ca en PV, je suis curieux.
Voila, j'espere pas trop poluer la source avec mes questions.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 28 déc. 2006 à 19:00
Je n'ai pas reçu ton mail, en tout cas une chose est sûre, le $i++ et le ++$i sont deux choses bien différentes en PHP, donc c'est pour ça que je ne les compare pas ;)
a +
zoukozouko
Messages postés148Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention21 janvier 2009 28 déc. 2006 à 18:17
lol
merci anthomicro.
"thesin" >> sympa pour le lien google.
Je finis mon master 2 info cette année.
Je te dis ça simplement parce que google est un ami que j'ai appris à uitiliser pour le moindre prétexte, et j'ai fait pas mal de recherche sans trouver de solution, et comme je sais que sur cs on a l'habitude de s'entraider (c'est d'ailleur le but de ce site)...
Bref, j'ai sûrement pas tout appris, mais enfin, au niveau des "éléments essetiels de la programmation", tu m'aurais été plus utile en écrivant directement quelques lignes. Merci quand meme.
"Antho" >> je suis allé sur ton site, je t'avais envoyé un mail pour te parler des bench que t'avais fait sur les ' et ", ou sur les boucles for.
Le mail était pas apssé en entier, jene sais pour quelle raison.
Mais tant que t'es la :
je t'avais juste proposé de tester tes boucles for avec la syntaxe for ($i=truc; $i<chouet; ++$i).
En C, le ++$i est plus 'rapide' que le $i++ car il économise deux copies dans la pile. En effet $i++ fait une copie de $i dans la pile, ajoute un, et recopie la valeur à l'adresse de ton $i. ++$i ajoute un directement.
J'ai pas testé en php, je sais pas comment on fait un benchmark.
En tout cas, si ca peut t'aider.
Merci en tout cas a+
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 26 déc. 2006 à 11:13
rooo, comment donner une solution sans laisser quelqu'un apprendre un élément essentiel de la programmation .... '^^
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 25 déc. 2006 à 23:58
"Moi j'aimerais juste dégager tous les caractères NON numériques d'une chaine : tout se qui n'est pas entre 0 et 9 en fait."
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 25 déc. 2006 à 23:18
je te conseille carrément d'apprendre comment ça marche zoukozouko, donc je te conseille ce site par exemple :
http://www.expreg.com/pcre.php Petite recherche google, et hop! plein de tutos ;-)
zoukozouko
Messages postés148Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention21 janvier 2009 25 déc. 2006 à 21:46
"ca se torche avec une expression régulière"...
c'est quoi cette expression?
Moi j'aimerais juste dégager tous les caractères NON numériques d'une chaine : tout se qui n'est pas entre 0 et 9 en fait.
Quelqu'un a une soluc' rapide?
merci
Morricon
Messages postés41Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention 1 mars 2007 12 juin 2006 à 19:12
Bha voilà ! Merci à tous pour vos remarques (instructives en plus) Je me disais bien qu'il existait un moyen de "faire simple" et propre en plus (Pour ne pas dire "crade")
Encore merci: Je corrige ça demain.
Palleas_44
Messages postés130Date d'inscriptionlundi 12 décembre 2005StatutMembreDernière intervention19 avril 2009 12 juin 2006 à 19:04
C'est clair, ca ne sert à rien de réinventer la roue ! Il y a des fonctions faites pour se simplifier la vie alors pourquoi ne pas les utiliser ?
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 12 juin 2006 à 17:28
ça se torche avec une expression régulière, ça ne sert à rien de parcourir un tableau, ça prend plus de lignes de code et c'est surement plus lent et crade.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 12 juin 2006 à 13:55
non c'est le contraire...
if(caracteres_interdits($txt))
echo 'Il y a un caractère interdit dans le texte';
else
echo 'Le texte est ok';
LOo°oOl... .. .
@ tchaOo°
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 12 juin 2006 à 13:54
Morricon
Messages postés41Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention 1 mars 2007 12 juin 2006 à 10:01
Oups !
Il faut retirer les exit dans la fonction. Sinon on a une erreur.
Morricon
Messages postés41Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention 1 mars 2007 12 juin 2006 à 09:56
Bonjour à tous !
Je sais pas si j'ai bien compris cette fonction, mais bon comme elle m'indiquait certaines erreurs (???) de non déclarations: Je l'ai modifiée comme suit :
// Interdire certains caractères dans une saisie.
// RETOUR
// 0 si aucun des caracteres interdit est touvé
// 1 si au moins 1 des caracteres interdit est touvé
function caracteres_interdits($texte) {
// Permet de rendre le script insensible à la casse.
$message_temporaire = strtolower($texte);
// Tableau des caractères interdits
$carac_interdits = array();
$carac_interdits[1] = '@';
$carac_interdits[2] = '\'';
$carac_interdits[4] = '/';
$carac_interdits[5] = '"';
$carac_interdits[6] = '#';
$carac_interdits[7] = '{';
$carac_interdits[8] = '}';
$carac_interdits[9] = '[';
$carac_interdits[10] = ']';
$carac_interdits[11] = '|';
$carac_interdits[12] = '`';
$carac_interdits[13] = '^';
$carac_interdits[14] = '¤';
$carac_interdits[15] = ':';
$carac_interdits[16] = '!';
// Boucle de traitement
$traitement = 1 ;
$erreur = 0 ;
foreach($carac_interdits as $traitement) {
//
// STRPOS renvoie TRUE si le caractère est trouvé
$position = strpos($message_temporaire, $traitement);
//
// Si la fonction renvoie VRAI c'est que le caractère est trouvé
// Retour: Erreur de caractère
if ($position !== FALSE) {
$erreur = 1;
return 1;
exit
}
}
// Retour normal (Correct)
if($erreur == 0){
return 0;
exit
}
}
En fait elle renvoie 0 si aucun caractères interdits n'est trouvé (donc correct) et 1 si au moins l'un d'entre-eux est trouvé (donc erreur)
En fait je voudrai votre avis: Existe'til en PHP une méthode simple pour les caractères spéciaux car je ne trouve pas que le fait de déclarer tous les caractères soit bon. C'est à mon sens un gros risque d'oubli.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 15 févr. 2006 à 14:04
Coucou => je ne pige pas ce que tu veux dire ?
reprenons : strpos () renvoie effectovement un int s'il trouve, et un booléen FALSE (uniquement) s'il ne trouve pas.
Je soutenais Kankrelune quand il disait que le commentaire, sur la ligne du strpos (), était faux.
Et je répondais à TheSin que son commentaire était approximatif, tout en précisant que la façon dont il étrait utilisé dans CE code-ci était ok, puisque l'on procédait à une comparaison typée.
Bref, le test le plus judicieux à mon sens est :
if (false !== strpos ($truc, $machin)) {
// trouvé
}
parce qu'avec un get_type, ça devient plus compliqué à gérer.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 15 févr. 2006 à 13:58
malam, c'est le prototype de la fonction qu'il faut faire... sauf que là, c'est un mixed value, mais un mixed value particulier :
mixedValue strpos(string, string);
si la chaine contient la sous chaine alors :
int strpos (string, string);
si la chaine ne contient pas la sous chaine alors :
bool strpos (string, string);
Bon, à moins que je ne me trompes, on ne peut pas utiliser de mixed en C sans faire de pointeurs (notion totalement abscente en php, sauf pe pour les $$, mais c'est légèrement différent, et pas du tout traité pareil...)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 15 févr. 2006 à 07:50
Surtout que je voulais juste signifier que le commentaire de Krankelune, à la base, était justifié, moi...
Coucou => je ne vais pas faire des gettype sur tous les retours de toutes mes fonctions (même si tu as raison dans l'absolu). Je préfère le !== false .
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 14 févr. 2006 à 21:23
je n'ai pas les bases de C ^^
Bon pour résumer : strpos renvoit soit la position sous forme de int sois FALSE.
Bref pour tester si la chaîne est présente tu fais if(strpos(...)!==FALSE)
{
echo 'chaîne trouvée';
}
et hop. Y'a pas à discuter 107 ans sur cette fonction lol.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 14 févr. 2006 à 20:35
(les bases de C, ça sert :) )
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 14 févr. 2006 à 20:13
0 c'est un int c'est pas la même chose qu'un booléen en terme de typage scrict.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 14 févr. 2006 à 20:04
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 14 févr. 2006 à 17:58
"0 c'est false"
0==FALSE
1==TRUE
0!==FALSE
1!==TRUE
;-) donc tout dépend comment tu fais tes vérifs.
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 14 févr. 2006 à 16:31
moi j'ai compris
strpos('a','abcdef') renvoie 0
0 c'est false
alors que dans le code de Arnauti, c'est genre
if (strpos('a','abcdef'))
et ca ca renverra false et fera donc pas ce qu'on veut ^^
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 13 févr. 2006 à 18:53
euh... malam, j'ai pas compris ton point de vue... peu importe ce que tu fais d'une fonction, elle renvoi toujours la même chose selon ses arguments... affiche gettype(strpos(...)); et tu verras soit int si les caractères sont présents, soit bool...
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 13 févr. 2006 à 16:51
ah oui, effectivement ....
tu as raison malalam ;)
merci de m'avoir corrigé :)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 13 févr. 2006 à 14:20
TheSine => c'est inexact, à défaut d'être complètement faux : true équivaut, sans comparaison de type, à une variable différente de 0, certes...donc, si j'ai la chaîne 'abcdef' et que je cherche 'a', avec ton raisonnement, mon strpos ne va pas me renvoyer true, mais false.
Sauf que dans ce cas, l'auteur teste bien sur le false AVEC comparaison sur le type, donc pas de problème.
Mais le commentaire était donc approprié :-)
TheSin
Messages postés331Date d'inscriptionmardi 12 novembre 2002StatutMembreDernière intervention10 février 2009 13 févr. 2006 à 14:03
Faux... strpos renvoie la postion du charactère recherché s'il le trouve et false s'il ne le trouve pas... .. . ;o)
Mais comme true équivaut à une variable différente de 0 et false à 0, ca passe quand même :P
cs_Arnauti
Messages postés392Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention26 septembre 2009 12 févr. 2006 à 20:56
Ha mince ^^.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 12 févr. 2006 à 16:15
*****************************************************
$position = strpos($message_temporaire, $traitement) ; // STRPOS renvoie TRUE si le caractère est trouvé
Faux... strpos renvoie la postion du charactère recherché s'il le trouve et false s'il ne le trouve pas... .. . ;o)
@ tchaOo°
Palleas_44
Messages postés130Date d'inscriptionlundi 12 décembre 2005StatutMembreDernière intervention19 avril 2009 11 févr. 2006 à 09:14
Ben ouais si tu veux mais ce que je veux dire c'est que l'idée est bonne,le concept quoi rooooo un peu d'indulgence que diable ;)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 11 févr. 2006 à 09:11
arrète, c'est hyper mal programmé :
$carac_interdits n'est pas deffinit par : $carac_interdits=array();
on ne peut même pas rentrer les caractères par une chaine (ce qui rend chiant la frappe des caractères...)
et la fonction ne renvoi pas forcément quelquechose...
Palleas_44
Messages postés130Date d'inscriptionlundi 12 décembre 2005StatutMembreDernière intervention19 avril 2009 10 févr. 2006 à 19:28
La source est pô mal et c'est une bonne idée mais sachant que tu peux t'en tirer avec un expression régulière c'est du gaspillage de ressources, mais bon c'est po mal programmé quand même ;)
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 10 févr. 2006 à 19:00
preg_replace aussi...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 10 févr. 2006 à 09:15
Hello,
preg_match_all() aussi... ;-)
cs_Arnauti
Messages postés392Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention26 septembre 2009 10 févr. 2006 à 07:32
Je vais te répondre la même chose ^^, mon code permet d'afficher a l'utilisateur les carractères interdits qu'il utilises.
A++
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 10 févr. 2006 à 01:55
Salut,
Cf codes-php.net, mon commentaire est le même sur phpcs ;-)
une expression régulière en une ligne et hop c'est fait.
9 août 2008 à 23:43
de plusieurs caracteres en utilisant la notion des expression reguliere.
ce que j'ai fais..
function verifpseudou($variable)
{
$syntaxe="#[a-zA-z0-9_.-]#";
return ((preg_match($syntaxe,$variable))?true:false);
}
mais ca va pas marche... lorsque je tape un?, <, > il les accept?
2 janv. 2007 à 19:18
Enfin bon l'image ne s'affichera pas ;)
2 janv. 2007 à 15:32
@ tchaOo°
29 déc. 2006 à 17:15
29 déc. 2006 à 17:01
@ tchaOo°
ps : au fait Anthomicro... ton code d'upload sécurisé à une faille... getimagesize() est contournable... .. . ;o)
29 déc. 2006 à 09:25
C'est vrai que je pense pas bcp à donner un peu de code en exemple, l'habitude de devoir apprendre seul .... désolé.
29 déc. 2006 à 01:07
{
return ++$variable;
}
function mafonction2($variable)
{
return $variable++;
}
echo mafonction(1);
echo mafonction(1);
29 déc. 2006 à 00:11
par contre, si je peux me permettre, c'est justement parce qu'elle sont différente que tu pourrais les comparer.
Si ca focntionne comme en C/C++, ce qui est probablemetn le cas, vu la ressemblance des des langages, alors tu devrais avoir de meilleurs résultats. Tu dois avoir des fichiers tout faits pour les tests, si tu peux tester ca, sans trop te casser la tete, ca pourrait etre utile, (a toi comme au autres).
Si par contre ca fonctionne differement, alors explique moi ca en PV, je suis curieux.
Voila, j'espere pas trop poluer la source avec mes questions.
28 déc. 2006 à 19:00
a +
28 déc. 2006 à 18:17
merci anthomicro.
"thesin" >> sympa pour le lien google.
Je finis mon master 2 info cette année.
Je te dis ça simplement parce que google est un ami que j'ai appris à uitiliser pour le moindre prétexte, et j'ai fait pas mal de recherche sans trouver de solution, et comme je sais que sur cs on a l'habitude de s'entraider (c'est d'ailleur le but de ce site)...
Bref, j'ai sûrement pas tout appris, mais enfin, au niveau des "éléments essetiels de la programmation", tu m'aurais été plus utile en écrivant directement quelques lignes. Merci quand meme.
"Antho" >> je suis allé sur ton site, je t'avais envoyé un mail pour te parler des bench que t'avais fait sur les ' et ", ou sur les boucles for.
Le mail était pas apssé en entier, jene sais pour quelle raison.
Mais tant que t'es la :
je t'avais juste proposé de tester tes boucles for avec la syntaxe for ($i=truc; $i<chouet; ++$i).
En C, le ++$i est plus 'rapide' que le $i++ car il économise deux copies dans la pile. En effet $i++ fait une copie de $i dans la pile, ajoute un, et recopie la valeur à l'adresse de ton $i. ++$i ajoute un directement.
J'ai pas testé en php, je sais pas comment on fait un benchmark.
En tout cas, si ca peut t'aider.
Merci en tout cas a+
26 déc. 2006 à 11:13
25 déc. 2006 à 23:58
$caine = 'dqsfdsqdsfqdqsf04545e4z5r4ez5razeazrerezrezazreez99999999';
echo preg_replace('`[^0-9]*`','', $chaine);
25 déc. 2006 à 23:18
http://www.expreg.com/pcre.php
Petite recherche google, et hop! plein de tutos ;-)
25 déc. 2006 à 21:46
c'est quoi cette expression?
Moi j'aimerais juste dégager tous les caractères NON numériques d'une chaine : tout se qui n'est pas entre 0 et 9 en fait.
Quelqu'un a une soluc' rapide?
merci
12 juin 2006 à 19:12
Encore merci: Je corrige ça demain.
12 juin 2006 à 19:04
12 juin 2006 à 17:28
12 juin 2006 à 13:55
if(caracteres_interdits($txt))
echo 'Il y a un caractère interdit dans le texte';
else
echo 'Le texte est ok';
LOo°oOl... .. .
@ tchaOo°
12 juin 2006 à 13:54
function caracteres_interdits($texte)
{
$carac_interdits = array(
'@', '\'', '/', '"',
'#', '{', '}', '[',
']', '|', '`', '^',
'¤' , ':' , '!'
);
for($i=0,$nbc=count($carac_interdits);$i<$nbc;$i++)
{
if(strpos($texte, $carac_interdits[$i]) === false)
return true;
}
return false;
}
ensuite tu n'a plus qu'a faire...
$montxt = 'coucou # pwet pwet';
if(!caracteres_interdits($txt))
echo 'Il y a un caractère interdit dans le texte';
else
echo 'Le texte est ok';
@ tchaOo°
12 juin 2006 à 13:40
12 juin 2006 à 13:19
$carac_interdits = array( '@' , '\'' , '/' , '"' , '#' , '{' , '}' , '[' , ']' , '|' , '`' , '^' , '¤' , ':' , '!' );
Je trouve quand même ça plus simple ;-)
12 juin 2006 à 10:01
Il faut retirer les exit dans la fonction. Sinon on a une erreur.
12 juin 2006 à 09:56
Je sais pas si j'ai bien compris cette fonction, mais bon comme elle m'indiquait certaines erreurs (???) de non déclarations: Je l'ai modifiée comme suit :
En fait elle renvoie 0 si aucun caractères interdits n'est trouvé (donc correct) et 1 si au moins l'un d'entre-eux est trouvé (donc erreur)
En fait je voudrai votre avis: Existe'til en PHP une méthode simple pour les caractères spéciaux car je ne trouve pas que le fait de déclarer tous les caractères soit bon. C'est à mon sens un gros risque d'oubli.
15 févr. 2006 à 14:04
reprenons : strpos () renvoie effectovement un int s'il trouve, et un booléen FALSE (uniquement) s'il ne trouve pas.
Je soutenais Kankrelune quand il disait que le commentaire, sur la ligne du strpos (), était faux.
Et je répondais à TheSin que son commentaire était approximatif, tout en précisant que la façon dont il étrait utilisé dans CE code-ci était ok, puisque l'on procédait à une comparaison typée.
Bref, le test le plus judicieux à mon sens est :
if (false !== strpos ($truc, $machin)) {
// trouvé
}
parce qu'avec un get_type, ça devient plus compliqué à gérer.
15 févr. 2006 à 13:58
mixedValue strpos(string, string);
si la chaine contient la sous chaine alors :
int strpos (string, string);
si la chaine ne contient pas la sous chaine alors :
bool strpos (string, string);
Bon, à moins que je ne me trompes, on ne peut pas utiliser de mixed en C sans faire de pointeurs (notion totalement abscente en php, sauf pe pour les $$, mais c'est légèrement différent, et pas du tout traité pareil...)
15 févr. 2006 à 07:50
Coucou => je ne vais pas faire des gettype sur tous les retours de toutes mes fonctions (même si tu as raison dans l'absolu). Je préfère le !== false .
14 févr. 2006 à 21:23
Bon pour résumer : strpos renvoit soit la position sous forme de int sois FALSE.
Bref pour tester si la chaîne est présente tu fais if(strpos(...)!==FALSE)
{
echo 'chaîne trouvée';
}
et hop. Y'a pas à discuter 107 ans sur cette fonction lol.
14 févr. 2006 à 20:35
14 févr. 2006 à 20:13
14 févr. 2006 à 20:04
echo gettype(0), '/', gettype(false), '/', serialize(0), '/', serialize(false);
même chose ?
14 févr. 2006 à 17:58
0==FALSE
1==TRUE
0!==FALSE
1!==TRUE
;-) donc tout dépend comment tu fais tes vérifs.
14 févr. 2006 à 16:31
strpos('a','abcdef') renvoie 0
0 c'est false
alors que dans le code de Arnauti, c'est genre
if (strpos('a','abcdef'))
et ca ca renverra false et fera donc pas ce qu'on veut ^^
13 févr. 2006 à 18:53
13 févr. 2006 à 16:51
tu as raison malalam ;)
merci de m'avoir corrigé :)
13 févr. 2006 à 14:20
Sauf que dans ce cas, l'auteur teste bien sur le false AVEC comparaison sur le type, donc pas de problème.
Mais le commentaire était donc approprié :-)
13 févr. 2006 à 14:03
Mais comme true équivaut à une variable différente de 0 et false à 0, ca passe quand même :P
12 févr. 2006 à 20:56
12 févr. 2006 à 16:15
$position = strpos($message_temporaire, $traitement) ; // STRPOS renvoie TRUE si le caractère est trouvé
*****************************************************
Faux... strpos renvoie la postion du charactère recherché s'il le trouve et false s'il ne le trouve pas... .. . ;o)
@ tchaOo°
11 févr. 2006 à 09:14
11 févr. 2006 à 09:11
$carac_interdits n'est pas deffinit par : $carac_interdits=array();
on ne peut même pas rentrer les caractères par une chaine (ce qui rend chiant la frappe des caractères...)
et la fonction ne renvoi pas forcément quelquechose...
10 févr. 2006 à 19:28
10 févr. 2006 à 19:00
10 févr. 2006 à 09:15
preg_match_all() aussi... ;-)
10 févr. 2006 à 07:32
A++
10 févr. 2006 à 01:55
Cf codes-php.net, mon commentaire est le même sur phpcs ;-)
une expression régulière en une ligne et hop c'est fait.
a +