EXTRAIRE DANS UNE CHAINE UNE SOUS CHAINE À PARTIR D'UN SÉPARATEUR
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 2008
-
14 mars 2005 à 11:06
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 2008
-
17 mars 2005 à 22:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Enfin je veux dire, ce manuel (officiel). Il est pratique pour ca : toutes les fonctions pour traiter les chaines sont au meme endroit. Idem pour les tableaux, etc.
loyousse
Messages postés198Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention16 décembre 20081 14 mars 2005 à 11:34
J'ai modifié la source afin de renoyer False si l'entier est négatif et si il nya pas de séparateur dans la chaine.
J'avais récupéré un manuel php mais j'avais jamais trouvé la fonction explode. En plus d'habitude les fonctions sur les chaines de caractères commencent souvent par "str", donc meme si j'avais vu le nom de la fonction "explode" j'aurais pas eu l'idée d'aller voir de quoi elle parle.
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 14 mars 2005 à 11:30
Bien sur je n'ai pas fait une fonction... si tu fais une fonction dans ta fonction tu vas faire
if(isset($tmp[$entier-1])
return $temp[$entier-1];
else
return NULL;
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 14 mars 2005 à 11:28
Oui oui desole je ne voulais pas en rajouter lol. Quand j'ai commence a ecrire le commentaire, il n'y avait aucun autre commentaire. Mais comme je bosse en meme temps, je suis un peu lent parfois pour ecrire...et entre temps GRenard avait ecrit ;-)
Pour te repondre, oui ($tmp[-3]), mais puisque tu fais une fonction, autant prevoir les erreurs qui pourraient se produire. C'est a toi de les gerer.
Et ok, tu ne connaissais pas explode() :-) Mais un conseil : php est BOURRE de fonctions...vraiment, il y en a beaucoup! Moi quand je cherche a faire un truc, je passe d'abord quelques heures dans la doc, je l'explore a fond, pour etre sur qu'il n'y a pas une ou des fonctions qui ne feraient pas a peu pres ce que je veux obtenir. On a parfois de bonnes surprises ;-)
loyousse
Messages postés198Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention16 décembre 20081 14 mars 2005 à 11:20
C'est vrai que quand on connait la fonction "explode" on ne voit pas l'intérêt, mais quand j'ai développé cette fonction je ne connaissais pas du tout explode.
loyousse
Messages postés198Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention16 décembre 20081 14 mars 2005 à 11:15
à mon avis si tu mets avec ta solution :
echo $tmp[-3];
ça va aussi planter. donc le probleme est present aussi avec ta solution.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 14 mars 2005 à 11:14
Hello,
ok, ca ,marche, mais je ne vois pas bien l'interet ?
Un explode() , puis recuperer la valeur voulue fait aussi bien l'affaire. Et a mon avis le explode() est plus optimise vu qu'il est fait pour ca.
loyousse
Messages postés198Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention16 décembre 20081 14 mars 2005 à 11:12
C'est vrai, je ne connaissais pas. Pour mon stage j'ai été obligé de faire cette fonction car je ne connaissais pas d'autres moyens de faire. Mais les 2 solutions marchent très bien.
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 14 mars 2005 à 11:10
Permet moi de rajouter que ce n'est pas un code initié, et si tu mets $entier <= 0, t'as une belle boucle infini.
Faudrait rajouter un petit if
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 14 mars 2005 à 11:06
À mon avis, c'est une source comme une autre vous allez dire, mais explode doit être pas mal plus rapide que ca ...
$tmp = explode(';', 'essai;test;toto');
echo $tmp[2]; // affiche toto
17 mars 2005 à 22:56
17 mars 2005 à 20:12
tant que t'y est pour les vérifications, si tu demandes le 5 àme mot, et qu'il n'y a que 4* le séparateur...
14 mars 2005 à 11:50
http://de2.php.net/manual/fr/function.explode.php
Enfin je veux dire, ce manuel (officiel). Il est pratique pour ca : toutes les fonctions pour traiter les chaines sont au meme endroit. Idem pour les tableaux, etc.
14 mars 2005 à 11:34
J'avais récupéré un manuel php mais j'avais jamais trouvé la fonction explode. En plus d'habitude les fonctions sur les chaines de caractères commencent souvent par "str", donc meme si j'avais vu le nom de la fonction "explode" j'aurais pas eu l'idée d'aller voir de quoi elle parle.
14 mars 2005 à 11:30
if(isset($tmp[$entier-1])
return $temp[$entier-1];
else
return NULL;
14 mars 2005 à 11:28
Pour te repondre, oui ($tmp[-3]), mais puisque tu fais une fonction, autant prevoir les erreurs qui pourraient se produire. C'est a toi de les gerer.
Et ok, tu ne connaissais pas explode() :-) Mais un conseil : php est BOURRE de fonctions...vraiment, il y en a beaucoup! Moi quand je cherche a faire un truc, je passe d'abord quelques heures dans la doc, je l'explore a fond, pour etre sur qu'il n'y a pas une ou des fonctions qui ne feraient pas a peu pres ce que je veux obtenir. On a parfois de bonnes surprises ;-)
14 mars 2005 à 11:20
14 mars 2005 à 11:15
echo $tmp[-3];
ça va aussi planter. donc le probleme est present aussi avec ta solution.
14 mars 2005 à 11:14
ok, ca ,marche, mais je ne vois pas bien l'interet ?
Un explode() , puis recuperer la valeur voulue fait aussi bien l'affaire. Et a mon avis le explode() est plus optimise vu qu'il est fait pour ca.
14 mars 2005 à 11:12
14 mars 2005 à 11:10
Faudrait rajouter un petit if
14 mars 2005 à 11:06
$tmp = explode(';', 'essai;test;toto');
echo $tmp[2]; // affiche toto