Extraire dans une chaine une sous chaine à partir d'un séparateur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 185 fois - Téléchargée 32 fois

Contenu du snippet

Cette fonction vous permet d'extraire d'une chaîne une sous chaine à partir d'un séparateur.
exemple :
si on appelle ExtractChamp("essai;test",1,";"), ça renvoie "essai".
si on appelle ExtractChamp("essai;test;toto",3,";"), ça renvoie "toto".

Elle attend 3 parmètres qui sont une chaîne, le numéro de la sous chaîne a récupérer et le séparateur.
Si la chaine passée en paramètre ne contient pas le séparateur alors la fonction retourne "false".

Source / Exemple :


function ExtractChamp($chaine,$entier,$sep)
{
if($entier > 0)
{
    $res=strtok($chaine,$sep); //découpe la chaine en segment avec le séparateur      $sep.
    if($res!="") //si la chaîne comporte au moins une fois le séparateur alors
    {
        for($i=1;$i<$entier;$i++)
        {
            $res=strtok($sep);//passe au segment suivant
        }  
    }
}else{
  $res=false;
}

    return($res);//retourne le résultat        
}

Conclusion :


Laissez vos commentaires

A voir également

Ajouter un commentaire Commentaires
cs_GRenard
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008

17 mars 2005 à 22:56
T'as essayé coucou ? non... ca retourne vide, et donc c'est correct.
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
30 juillet 2012
41
17 mars 2005 à 20:12
tu perds pas mal de temps...

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...
malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
14 mars 2005 à 11:50
Bah, utilises plutot ca :

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.
loyousse
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
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és
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008

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;
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (loyousse)