Php récupérer un morceau d'une chaine
Résolu/Fermé
A voir également:
- Php récupérer un morceau d'une chaine
- Comment recuperer un message supprimé sur whatsapp - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Chaine tnt gratuite sur mobile - Guide
- Impossible de récupérer mon compte gmail - Guide
6 réponses
Luxerails
Messages postés
159
Date d'inscription
jeudi 14 avril 2011
Statut
Membre
Dernière intervention
24 décembre 2012
41
14 avril 2011 à 20:04
14 avril 2011 à 20:04
Cette chaine se trouve où ? Sur une autre page, sur la meme page... ?
ktm620enduro
Messages postés
293
Date d'inscription
mardi 21 septembre 2010
Statut
Membre
Dernière intervention
12 mars 2013
38
Modifié par ktm620enduro le 14/04/2011 à 21:51
Modifié par ktm620enduro le 14/04/2011 à 21:51
$r est le résultat et $k ta chaine d'entrée
Abandonne ce qui te trouble au profit de ce qui apaise ton coeur.
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é.
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 genre
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
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 genre
function 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
ktm620enduro
Messages postés
293
Date d'inscription
mardi 21 septembre 2010
Statut
Membre
Dernière intervention
12 mars 2013
38
15 avril 2011 à 11:12
15 avril 2011 à 11:12
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)"
[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)"
ktm620enduro
Messages postés
293
Date d'inscription
mardi 21 septembre 2010
Statut
Membre
Dernière intervention
12 mars 2013
38
Modifié par ktm620enduro le 15/04/2011 à 11:28
Modifié par ktm620enduro le 15/04/2011 à 11:28
tiens, teste ce code chez moi il fonctionne... : ou $text est ta chaine "[FR]villes (dates)/[BEL]ville (date)/etc... " et $result[1] est le résultat
if (preg_match_all('#\[([^\]]+)\]([^\(]+)\(([^\)]+)\)#',$text,$result)) print_r($result[1]);
ktm620enduro
Messages postés
293
Date d'inscription
mardi 21 septembre 2010
Statut
Membre
Dernière intervention
12 mars 2013
38
15 avril 2011 à 11:42
15 avril 2011 à 11:42
résolu ?