所以我创建了一个从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);
}
}
?>
任何建议都非常受欢迎,我觉得有可能。
最佳,
中号
答案 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')) );
?>