Bonjour,

je dois récupéré plusieurs fois la même url d'une page en parallele avec comme différence un parametre.

Suite à la demande je reçois en retour pour chaque page demandée un JSON à 2 niveaux.

1/dans le code ci-dessous je ne reçois que le contenu de la dernière URL

2/et je n'arrive pas à décoder en utilisant foreach.
L'objectif étant de pouvoir pointer chaque zone pour les insérer en table.

J'ai tenté de plusieurs manières avec les foreach mais je n'obtiens que des erreurs divers et variées.


Voici le code
appel.php
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
29
30
31
32
33
34
35
36
37
38
39
 
<?php
function multiple_threads_request($nodes){
        $mh = curl_multi_init();
        $curl_array = array();
        foreach($nodes as $i => $url)
        {
            $curl_array[$i] = curl_init($url);
            curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, true);
            curl_multi_add_handle($mh, $curl_array[$i]);
        }
        $running = NULL;
        do {
            usleep(10000);
            curl_multi_exec($mh,$running);
        } while($running > 0);
 
        $res = array();
 
        //foreach($nodes as $i => $url)
        {
 
            $res[$url] = curl_multi_getcontent($curl_array[$i]);
        }
 
        foreach($nodes as $i => $url){
            curl_multi_remove_handle($mh, $curl_array[$i]);
        }
        curl_multi_close($mh);
        return $res;
}
 
 
  $liste = array("http://site.com/?param=1","http://site.com/?param=2","http://site.com/?param=3","http://site.com/?param=4","http://site.com/?param=5");
 
$resultat = multiple_threads_request($liste);
print_r($resultat);
 
?>
exemple de retour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
array(1) { ["http://site.com/?param=5]=> string(6884) "{"R":[{"ligne":"1","picto":"40","heure":"2012-03-18T17:10:00.000+01:00","etat":"actif"},{"ligne":"2","picto":"50","heure":"2012-03-19T17:10:00.000+01:00","etat":"stop"}],"P":[{"ligne":"1","picto":"40","heure":"2012-03-18T17:10:00.000+01:00","etat":"actif"},{"ligne":"2","picto":"50","heure":"2012-03-19T17:10:00.000+01:00","etat":"stop"}]}" }
Merci de votre aide, conseil et correction