如何修剪在PHP

时间:2017-05-20 18:14:11

标签: php json

我正在尝试使用Web API来获取一些数据。问题是我需要将CSV数据转换为JSON格式。

<?php
    // allows us to skip the first row while looping through the file 
     $i = 0;
    //web api
    $stocks = "https://www.google.com/finance/historical?output=csv&q=aapl";

    //read csv file
    $handle = fopen($stocks, 'r');
    //loop through CSV file
    while (($data = fgetcsv($handle, 2000, ",")) !== FALSE) {    
        if ($i > 0) { 
            trim($data[0]);
            trim($data[1]);
            trim($data[2]);
            trim($data[3]);
            trim($data[4]);
            trim($data[5]);

            // an array
            $chartArray[] = $data;
        }
        $i++;
    }

   fclose($handle);

   //Convert PHP Array to JSON String
   print (json_encode($chartArray));

?>

Screenshot

从图像中可以看出,我正在使用机箱获取JSON。 ["19-May-17","153.38","153.98","152.63","153.06","26960788"]

如果有解决方案,请告诉我。提前谢谢!

2 个答案:

答案 0 :(得分:0)

您永远不会将非字符串值放入json中。从不。

否则。您只需将数字部分转换为数字,将日期部分转换为php日期。

这样的事情:

while (($data = fgetcsv($handle, 2000, ",")) !== FALSE) {    
    if ($i > 0) { 

        $data[0] = date('Y-m-d', strtotime($data[0]));
        $data[1] = intval($data[1]);
        $data[2] = intval($data[2]);
        $data[3] = intval($data[3]);
        $data[4] = intval($data[4]);
        $data[5] = intval($data[5]);

        $chartArray[] = $data;
    }
    $i++;
}

但是一旦你将它转换为json,它就会自动放置“chars。所以你需要在接收者(客户端?)那边转换字符串。”

答案 1 :(得分:0)

你误解了JSON是什么。这是您的数据在JSON格式时的样子:它必须是一系列在javascript语法的JSON子集中合法的值(字符串,int,数组等)。没有问题需要解决。使用JSON的函数将知道该怎么做。