dispatch(); // Si erreur, on l'affiche if( $response->error != ManagerError::Success ){ var_dump( ManagerError::explicit($response->error) ); exit(); } // On récupère les données $logs = $response->get('data'); /* [1] On associe un faux numéro à chaque utilisateur =========================================================*/ $falseNumbers = array(0); // Contiendra les numéros attribués $alreadyNumbered = array(); // Contiendra aux mêmes indices que les numéros, les noms des personnes les ayant utilisé // Pour chaque utilisateur foreach($logs as $i=>$log){ // On évite la première ligne if( $i == 0 ){ unset($logs[$i]); continue; } $numberIndex = array_search($log['Number'], $alreadyNumbered); /* (1) Si pas encore de numéro, on en attribue un */ if( $numberIndex === false ){ $lastnumIndex = count($falseNumbers) - 1; $newNumber = ++$falseNumbers[$lastnumIndex]; $numberIndex = array_push($falseNumbers, $newNumber ) - 1; $alreadyNumbered[$numberIndex] = $log['Number']; } $logs[$i]['Name'] = $logs[$i]['Number']; $logs[$i]['Number'] = $falseNumbers[$numberIndex]; } /* (2) On convertit les numéros en string */ foreach($falseNumbers as $n=>$number){ $stringNumber = "0600000000"; $snlen = strlen($stringNumber); $stringValue = strval($number); $svlen = strlen($stringValue); $stringNumber = substr($stringNumber, 0, $snlen-$svlen); $stringNumber .= $stringValue; $falseNumbers[$n] = $stringNumber; $logs[$i]['Number'] = $falseNumbers[$numberIndex]; } foreach($logs as $i=>$log){ $numberIndex = array_search($log['Name'], $alreadyNumbered); $logs[$i]['Number'] = $falseNumbers[$numberIndex]; } /* [2] On rédige les headers =========================================================*/ header('Content-type: text/xml'); header('Content-Disposition: attachment; filename=call-log.xml'); /* [3] On rédige le contenu du fichier XML =========================================================*/ echo "\n"; echo "\n"; // Pour chaque utilisateur foreach($logs as $i=>$log) echo "\n"; echo "\n"; // Si aucun fichier }else{ ?>