如何将(文本)导入json对象

时间:2013-03-20 03:50:51

标签: php json import

所以我创建了一个从Arduino Pulse传感器接收脉冲数据的php文件,并将其存储到.txt文件中。这是代码:

<?php

$pulse = $_GET["pulse"] ;   

$file = fopen("data.txt", "a+");

$pulse.="\r\n";
fwrite($file, $pulse);//takes incoming data and writes it in the file
fclose($file);?>

所以我在data.txt中存储的只是脉冲传感器中的一堆数字。我想从不同的php文件中访问该data.txt作为json对象,所以我提出了这个但它似乎不起作用:

<?php
header('Content-type: application/json');

if(isset($_GET["request"])){

    if($_GET["request"] == "info"){

        $pulse = $_GET["pulse"];

        $file = fopen("data.txt", "a+");


        $pulse.="\r\n";
        fwrite($file, $pulse);
        fclose($file);


        echo json_encode($file);



    }
}

?>

任何建议都非常受欢迎,我觉得有可能。

最佳,

中号

3 个答案:

答案 0 :(得分:0)

如果要发送数据文件的实际内容,只需读取文件数据,将此数据存储到数组中,然后使用json_encode

回显数组。
<?php

// Send header for json content
header('Content-type: application/json');

//检查用户是否询问信息     if(!empty($ _ GET [&#34; request&#34;])&amp;&amp; $ _GET [&#34; request&#34;] ==&#34; info&#34;){

    // Retrieve the content of the file and split on "\r\n"
    // ($data is an array of lines)
    $data = preg_split("/\r\n/", file_get_contents("data.txt"));

    // JSON encode the data array
    echo json_encode($file);

}

假设脉冲数据是简单整数,您将发送一个JSON,如:

["12","24","20",....]

答案 1 :(得分:0)

这是我最简单的想法..

<?php

        header('Content-type: application/json');

         // make your required checks

        $fp    = 'yourfile.txt';

        // get the contents of file in array
        $conents_arr   = file($fp,FILE_IGNORE_NEW_LINES);

        foreach($conents_arr as $key=>$value)
        {
            $conents_arr[$key]  = rtrim($value, "\r");
        }

        var_dump($conents_arr);
        $json_contents = json_encode($conents_arr);

        echo $json_contents;
?>

这将首先将您的文件内容转换为数组,然后将json从中转出..预期输出将类似于[“data1”,“data2”,“data3”]

希望它可以帮到你

答案 2 :(得分:0)

这会给你你想要的......

<?php
  header('Content-type: application/json');
  echo json_encode( explode("\r\n",file_get_contents('data.txt')) );
?>