Bonjours à tous, je suis en train d'écrire une Regex mais j'ai une erreur avec celle-ci.
Voici le texte dont je voudrai extraire des infos :
J'ai diminuer sa taille pour le prendre plus visible. Dans mon exemple j'utiliserai donc celui-ci :
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
17
18
19
20
21
22
23
24
25
26
27
28 [ { "id": "b266fcc9", "title": "test", "description": "test123", "stock": 1, "price": "10.0", "currency": "USD", "product_type": 2, "private": false, "unlisted": false, "created_at": "2017-01-21T00:36:21.000Z", "updated_at": "2017-01-21T00:36:21.000Z" } { "id": "6762882b", "title": "test3", "description": "edede", "stock": 1, "price": "5.0", "currency": "USD", "product_type": 2, "private": false, "unlisted": false, "created_at": "2017-02-06T13:37:03.000Z", "updated_at": "2017-02-06T13:37:03.000Z" } ]
Je cherche à récupérer toutes ce qu'il y a entre chaque {}.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $reponse = '[{"updated_at":"2017-01-21T00:36:21.000Z"},{"updated_at":"2017-02-06T13:37:03.000Z"}]';
Mon résultat devrai donc être :
Le problème c'est que on code me ressort tout car il ne fait pas occurrence par occurrence. Il se contente de prendre le premier '{' et le dernier '}'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 {"updated_at":"2017-01-21T00:36:21.000Z"} {"updated_at":"2017-02-06T13:37:03.000Z"}
J'utilise donc preg_match_all pour que chaque occurrences de mon patern me soit renvoyé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part {"updated_at":"2017-01-21T00:36:21.000Z"}{"updated_at":"2017-02-06T13:37:03.000Z"}
Or j'obtiens le le même résultats que plus celui plus haut :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $reponse = '[{"updated_at":"2017-01-21T00:36:21.000Z"},{"updated_at":"2017-02-06T13:37:03.000Z"}]'; $reponse = str_replace('},', '}', $reponse); #je remplace le }, par } preg_match_all('#{(.*)}#', $reponse, $resul); #Je récupère tout ce qui se trouve entre { } (PREG_OFFSET_CAPTURE) print_r($resul);
Auriez-vous une idée pour régler le problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part {"updated_at":"2017-01-21T00:36:21.000Z"}{"updated_at":"2017-02-06T13:37:03.000Z"}
Merci pour votre aide.
Partager