Php récupérer un morceau d'une chaine
Résolu
Nath
-
Nath -
Nath -
Bonjour,
voila j'ai une chaine "XXXXX[AAA] XXXX"
je voudrais récupérer juste le AAA mais je ne sais pas comment m'y prendre.
Avez-vous une solution?
Merci beaucoup
voila j'ai une chaine "XXXXX[AAA] XXXX"
je voudrais récupérer juste le AAA mais je ne sais pas comment m'y prendre.
Avez-vous une solution?
Merci beaucoup
6 réponses
-
-
Cette chaine se trouve où ? Sur une autre page, sur la meme page... ?
-
$r est le résultat et $k ta chaine d'entrée
if (preg_match('#^[^\[]+\[([^\]]+)#',$k,$r)) echo $r[1]; // affiche ce qui est entre les [ ]
$r=preg_replace('#\[[^\]]+\]#','',$k); echo $r; // effectue le remplacement et affiche le résultat
Abandonne ce qui te trouble au profit de ce qui apaise ton coeur. -
ca ne fontionne pas chez moi.
voila le code que j'ai fais hier mais je suis sûre qu'il y'a moyen de le simplifier.
car je n'ai pas réussi a récupéré ce qu'il y'a entre les crochet.
A savoir que ma chaîne provient déjà d'une autre chaîne divisé.$chaine=explode('/',$donnees['clubs']); foreach($chaine as $cle => $element) { $cr = str_replace("[BEL]", '<img src="images/pays/bel.jpg" title="Belgique"> ',$chaine[$cle]); $cr = str_replace("[FR]", '<img src="images/pays/fr.jpg" title="France"> ',$cr); //1lignes par pays $cr = str_replace("[SEN]", '<img src="images/pays/sen.jpg" title="Sénégal"> ',$cr); $cr = str_replace("[EAU]", '<img src="images/pays/eau.jpg" title="Émirats arabes unis"> ',$cr); . . . echo " - ".$cr."<br>";
Voila en gros, je récupère entre crochet le nom du pays pour y mettre à la place une image drapeau. Sur chaque ligne il n'y a forcement qu'un seul pays. Mais la facon dont j'ai codé pour chaque drapeau existant il y'aura une ligne, et d'autres drapeau s'ajouteront avec le temps mais il peu y'en avoir pas mal. Je suis sûre qu'il y'a plus simple mais je maîtrise pas encore correctement php, si quelqu'un peut m'apporter un morceau de solution ;)
//---------------------------------------------------- idée
sinon j'ai pensé faire un fonction avec tableau de ce genrefunction Drapeau($nation) { $pays[0][0] = "BEL"; $pays[0][1] = '<img src="images/pays/bel.jpg" title="Belgique">'; $pays[1][0] = "FR"; $pays[1][1] = '<img src="images/pays/fr.jpg" title="France">'; //etc..................................... pour chaque pays $i = 0; while($i <x) : //x = nb de pays if ($pays[$i][0] == $nation) { return $pays[$i][1]; $i=200; //plus que x } else {$i++;} endwhile; }?>
Mais pour cette solution il faut que je recupere le nom entre crochet et finalement elle est peut etre encore plus compliquer que la premiere...
SVP aidez moi :)
Merci
Nath -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
ma solution a été testée avant de te l'envoyer... chez moi elle fonctionne, tu peux me dire de quelle nature sont les caracteres avant les corchets , tes fameux XXX
-
XXX c'est BEL, FR les premiere lettre du pays en fait
[BEL] se trouve en debut de chaine.
voila ce que je reccuper de ma BDD
[FR]villes (dates)/[BEL]ville (date)/etc...
je sépare dans un premier temps la chaines en plusieurs jusque la pas de problème.
chaque morceau de chaîne correspond à "[PAYS]villes (dates)"