IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> sous-chaines en php, Trouver l'antépénultième
Options
Mayol
posté 2 May 2020, 17:20
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 018
Inscrit : 7 Sep 2003
Lieu : Monsempron-Libos (47)
Membre no 9 439



Bonjour à tous.
Avec le confinement, je me suis remis (un peu) au php.
Et je suis tombé sur un os que je n'arrive à résoudre, même avec l'aide d'internet malgré mes longues recherches (en français).
Donc, j'aurais besoin d'un peu d'aide. Voici mon problème :

J'ai une chaine de caractères avec des sous-chaines séparés par un slash (/).
Je voudrais capter l'antépénultième (avant avant dernier morceau de ma chaine).
Je ne peux le faire en basant la recherche sur sa position par rapport au début de la chaine, car celle-ci varie en longueur et en nombre de sous-chaines.
Mais celle que je veux capter est toujours à la même position par rapport à la fin :
Exemples :
lala/azerty/sdfg/MAISON/mkjh/jjg.p
ou
/kjg/dfgho/cvbnt/ala/azerty/sdfg/MAISON/mkjh/jjg.p
Je veut capter la chaine qui se trouve avant avant dernière (ici, Maison).
Puis-je espérer de l'aide ? Une bonne âme ? Merci d'avance.
P.S. : php 7.xx


--------------------
iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production)
Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ?

Non au langage SMS sur internet !
Go to the top of the page
 
+Quote Post
scoch
posté 2 May 2020, 19:23
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 664
Inscrit : 1 Jul 2010
Membre no 156 073



Bonjour,

je ne suis pas spécialiste de PHP, il existe peut-être une façon plus optimisée de faire que celle-ci :
1. convertir la chaîne en tableau avec la fonction explode
2. extraire l’avant-dernier élément, donc à la clef longueur - 3
Code
$s1 = "lala/azerty/sdfg/MAISON/mkjh/jjg.p";
$s2 = "/kjg/dfgho/cvbnt/ala/azerty/sdfg/MAISON/mkjh/jjg.p";

function extraireChaine($s) {
    $tab = explode("/", $s);
    return $tab[count($tab) - 3];
}
echo extraireChaine($s1);//MAISON
echo extraireChaine($s2);//MAISON


Ce message a été modifié par scoch - 2 May 2020, 19:24.


--------------------
L'homme n'est que poussière... c'est dire l'importance du plumeau ! Alexandre Vialatte
Go to the top of the page
 
+Quote Post
Mayol
posté 3 May 2020, 09:03
Message #3


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 018
Inscrit : 7 Sep 2003
Lieu : Monsempron-Libos (47)
Membre no 9 439



Super ! Merci beaucoup, scoch.


--------------------
iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production)
Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ?

Non au langage SMS sur internet !
Go to the top of the page
 
+Quote Post
claudsaille
posté 18 Nov 2020, 21:40
Message #4


Nouveau Membre


Groupe : Membres
Messages : 1
Inscrit : 18 Nov 2020
Membre no 212 889



Bonjour , j'ai consulter plusieurs cours [moderators fighting spam] tu peux voir ici la fonction explode je pense qu'il peut être une solution pour votre problème
Go to the top of the page
 
+Quote Post
Mayol
posté 19 Nov 2020, 09:00
Message #5


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 018
Inscrit : 7 Sep 2003
Lieu : Monsempron-Libos (47)
Membre no 9 439



Merci. Bien vu.


--------------------
iMac 27" (Mojave 10.14.1) - PowerMac G4-1.250 Ghz Bi (Tiger-Pour Classic- & Leopard) - IMac G5 20"-2 Ghz (Tiger-Pour Classic- & Leopard)- IMac G5 Intel Core i5 27"-2.66GHz (Snow Leopard [10.6.7] & Os 9.03 [Par SheepShaver]).
Imprimantes : Epson EPL6100 (Pour les travaux administratifs) - Xanté AW1200 (pour les stabis A3) - Xerox DC12 et Xerox DC242 (Pour la production)
Avez-vous pensé à ce que nous deviendrions sans macbidouille.com ?

Non au langage SMS sur internet !
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 29th November 2020 - 04:57