Bonjour à tous,
Ayant un petit soucis, je me tourne vers vos lanternes pour m'aider à le résoudre !
La situation est la suivante : j'ai une chaine de caractère dans laquelle je souhaite extraire des informations. La chaine est toujours sous la forme suivante
Ce que je souhaite, c'est pouvoir récupérer les informations qui sont "type" et "name". Jusque là je pensais que tout allait passer comme une lettre à la poste sauf que... Non !type="block" name="Bloc central"
Je récupère correctement "name" mais ce n'est hélas pas le cas pour le "type".
Un exemple valant mieux qu'un long discours, je vous colle la partie du code qui me permet de "tenter" cette récupération et ce qui m'est affiché à l'ecran.
CODE :
AFFICHAGE :
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
16 foreach($array_block[1] as $values_block) { $name_block = get_parsed_value('/name="(.*)"/', $values_block); $type_block = get_parsed_value('/type="(.*)"/', $values_block); echo 'STRING TO PARSE : ' . $values_block . '<br />BLOCK ' . $name_block . ' TYPE ' . $type_block . '<br /><br />'; } function get_parsed_value($pattern, $page) { $regs = ''; preg_match($pattern, $page, $regs); if(!empty($regs[1])) return $regs[1]; else return; }
Je récupère donc bien le nom mais le type me renvoie tout ce qui se trouve jusqu'à la dernière double quote !STRING TO PARSE : type="block" name="Bloc central"
BLOCK Bloc central TYPE block" name="Bloc central
CHAINE A PARSER :
RENVOIE CE QUI EST EN ROUGE:type="block" name="Bloc central"
ALORS QUE JE SOUHAITE CE QUI EST EN VERT:type="block" name="Bloc central"
Comment puis-je "forcer" l'arrêt à la première double quote rencontrée ? Car ici il renvoie tout ce qui se trouve entre type" et la dernière ".type="block" name="Bloc central"
Merci d'avance pour votre !
Partager