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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 401 fois - Téléchargée 30 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

Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
T'as essayé coucou ? non... ca retourne vide, et donc c'est correct.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
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...
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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.
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
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.
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
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)