Bonjour,
Comment dans la fonction "strpos" déterminer plusieurs type de délimiteur ?
espace, point, tiré...
Merci d'avance
Bonjour,
Comment dans la fonction "strpos" déterminer plusieurs type de délimiteur ?
espace, point, tiré...
Merci d'avance
On ne peut pas, cf la doc.
Donc soit tu appeles plusieurs fois strpos avec des parametres differents, soit tu te fait une fonction perso (ca se fait en 5 mn, tu passes la chaine à tester et un tableau avec la liste des lettres a tester, tu boucles sur chaque lettres de la chaine et aussitot que la lettre correspond a une entrée du tableau, tu retournes ton compteur courrant, sinon -1, et voila, le tour est joué).
J'imagine qu'il est possible de s'en sortir avec des expressions régulière, mais pour le coup, je maitrise moins.
Rakken
Oneira, un monde imaginaire d'Heroic Fantasy.
Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/
Allez, j'suis de bonne humeur ;-)
Attention, code non testé.
Avec $tab défini comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 /** * Cette fonction retourne la premiere position d'un des elements passe dans le tableau * @param string $chaine : La chaine a tester * @param array $tab : Un tableau ayant pour clefs la liste des valeurs a tester * @return int : La position du premier élément trouvé, -1 sinon. */ function strpos_multi($chaine, $tab) { $len = strlen($chaine); for ($i = 0; $i < $len; $i++) { if (isset($tab[$chaine[$i]]) return ($i); } return (-1); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $tab = array(); $tab[' '] = 1; $tab['.'] = 1; $tab['-'] = 1;
Rakken
Oneira, un monde imaginaire d'Heroic Fantasy.
Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php $pos = false; //la position du premier caractère espace, point, tiret $needle = " .-"; // les caractères à rechercher (espace, point, tiret) $quoted_needle = preg_quote($needle); //on le quote pour le passer à preg_quote if (preg_match("/^([^$quoted_needle]*)[$quoted_needle]/", $chaine, $match)) { $pos = strlen($match[1]); } ?>
J'ai fais autrement,
Merci a vous tous !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager