循环使用CSV并使用每个结果解析JSON查询

时间:2014-05-17 08:00:23

标签: php json parsing csv

因此,尽管有数小时的摆弄,但我无法理解为什么我的JSON查询只返回我试图解析的CSV / TXT文件中最后一行的结果。

以下是代码:

//Enter API Key Here
$api_key = 'AIzaSyB9Dq3w1HCxkS5qyELI_pZuTmdK8itOBHo';
$origin = 'RG12 1AA';
$output_type = 'json'; //xml or json
$csv_location = 'http://www.naturedock.co.uk/postcodes.csv';

//Do not edit
$base_url = 'https://maps.googleapis.com/maps/api/directions/';
$origin_url = '?origin=';
$destination_url = '&destination=';
$end_url = '&sensor=false&key=';

$page = join("",file("$csv_location"));
$kw = explode("\n", $page);

for($i=0;$i<count($kw);$i++){
    $destination = $kw[$i];
    echo $destination;
    $raw_url = $base_url . $output_type . $origin_url . $origin . $destination_url . $destination . $end_url . $api_key;
    $request_url = str_replace(' ', '', $raw_url);

    $getJson = file_get_contents($request_url);
    $routes = json_decode($getJson);

    $result = $routes->routes[0]->legs[0]->distance->value;
    echo $result . '<br>';
}

我得到的结果如下:

Distance by Post Code Generator v0.1 by Phil Hughes 

RG12 0GA 
RG12 0GB 
RG12 0GC 
RG12 0GD4066

&#39; 4066&#39;是RG12 0GD邮政编码的正确变量,但其他任何一个都没有返回结果,如您所见。

请帮忙。

1 个答案:

答案 0 :(得分:0)

join("",file("$csv_location"));

将所有文件连接到没有分隔符的单行。以下explode()不再看到换行符。所以你只在一条线上工作。 count($ kw)总是计算为1,循环只运行一次。