0

所以我创建了 php 文件,它从 Arduino Pulse 传感器接收脉冲数据并将其存储到 .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 文件作为 json 对象访问该 data.txt,所以我想出了这个,但它似乎不起作用:

<?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);



    }
}

?>

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

最好的,

4

3 回答 3

1

这是我能想到的最简单的..

<?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"]

希望对你有帮助

于 2013-03-20T04:15:04.777 回答
1

这会给你你想要的...

<?php
  header('Content-type: application/json');
  echo json_encode( explode("\r\n",file_get_contents('data.txt')) );
?>
于 2013-03-20T04:40:02.903 回答
0

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

<?php

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

// 检查用户是否询问信息 if(!empty($_GET["request"]) && $_GET["request"] == "info") {

    // 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",....]
于 2013-03-20T04:00:23.793 回答