2010-03-31 6 views
2

Je veux faire usage d'une API, mais il impression beaucoup d'informations et je ne sais pas comment je peux obtenir quelques valeurs clés de la matrice.comment obtenir la valeur clé de tableau avec curl (php)

<?php 
$query = "SELECT * FROM kvk WHERE adres='Wit-geellaan 158'"; 
$host = "http://api.openkvk.nl/php/"; 
$url = $host ."/". rawurlencode($query); 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_HEADER, 0); 

curl_exec($curl); 

curl_close($curl); 
?> 

Est-ce que mon script php et il montre

array(array("RESULT"=>array("TYPES"=>array("int","bigint","varchar","varchar","varchar","varchar","varchar","int","int","smallint","smallint","int"),"HEADER"=>array("id","kvk","bedrijfsnaam","adres","postcode","plaats","type","kvks","sub","bedrijfsnaam_size","adres_size","verhuisd"),"ROWS"=>array(array("1303095","271242250000","Schoonmaakbedrijf Regio","Wit-geellaan 158","2718CK","Zoetermeer","Hoofdvestiging","27124225","0","23","16","0"))))) 

Merci à l'avance

Salutations, Vierri

Répondre

2
//Use the cURL setting to put the result into a variable rather than printing it  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

//store the result rather than print (as we set CURLOPT_RETURNTRANSFER) 
$result = curl_exec($curl); 
if ($result === false){ 
    //something went wrong, handle the error 
} 

//evaluate the array result and store it. (Please don't use this line in production code) 
//as the $result string is from a untrusted source 
eval('$array = '.$result.';'); 

//then you can, for example, get a list of the types 
$types = $array[0]['RESULT']['TYPES']; 


//or some keys 
$keys = array_keys($array[0]['RESULT']); 

Le code ci-dessus est dangereux et probablement ne doit pas être utilisé comme il est. Ils pourraient mettre n'importe quoi méchant dans la réponse et vous l'évalueriez (la ligne eval) qui pourrait faire de mauvaises choses à votre serveur. Je vérifierais s'ils ont une meilleure API qui n'envoie pas de réponses dans ce format. (JSON ou XML seraient mieux)

Sinon, vous pouvez considerer l'analyse syntaxique manuellement le tableau de réponse plutôt que d'utiliser eval

+0

Bonjour thnx pour votre réponse, Parse error: syntax error, à la fin de $ inattendue /var/www/clients/client5/web6/web/test.php(20): eval() 'd code sur la ligne 1 Attention: array_keys() [function.array-keys]: Le premier argument devrait être un tableau dans /var/www/clients/client5/web6/web/test.php sur la ligne 27 est l'erreur que je reçois quand j'utilise l'eval – x4tje

+0

@Vierri a corrigé le code. – Yacoby

+0

oui ça fonctionne vraiment merci pour votre aide. – x4tje

0

Pour obtenir toutes les clés et valeurs:

$server_output = curl_exec($curl); 
var_dump($server_output); 

Pour obtenir juste une liste des clés:

$server_output = curl_exec($curl); 
ksort($server_output); 
foreach ($server_output AS $key => $val) { 
    echo "$key\n"; 
} 
+0

La réponse est une chaîne pas un tableau. 'ksort' et' foreach' attendent des tableaux. – Yacoby

Questions connexes