环境
- Windows 8.1 64 位
- 谷歌浏览器
我想做什么
最终目标
使用树莓派制作宠物监控系统。创建一个网页,您可以在其中检查宠物的流图像以及温度和湿度。
当前问题
无法使用 PHP 读取 csv 数据(温度和湿度)并将其传递给 html 文件中的 javascript。
下面给了我一个空白页。
test.html
<?php
$data = array();
$fp = fopen('temphumid.csv', 'r');
$row = fgetcsv($fp); // skip the header
while ($row = fgetcsv($fp)) { $data[] = sprintf("['%d', %d, %d] ", $row[0], $row[1], $row[2]); }
$str = implode(', ' . PHP_EOL, $data);
?>
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([ ['day', 'avg_temp', 'avg_humid'],
<?php $str; ?>
]);
var options = { title: 'This is a test graph' };
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="chart_div" style="width: 80%; height: 400px;"></div>
</body>
</html>
temphumid.csv 与 test.html 在同一目录中。
temphumid.csv
dateandtime,temp,humid
1,20.0701749938488,48.0275514992728
2,20.2401044696121,57.2354245801184
3,19.1474087424506,45.5657495890199
4,18.8319188605772,62.4405658353862
5,20.8854516366497,46.5185590247232
6,20.7459481702926,47.4137986506082
7,20.9609524855751,48.5064890268627
8,17.0936718055156,46.1276393517355
9,18.4273511669417,42.4825830307023
10,20.9669696456074,51.5502032331834
我尝试了很多方法,包括将 echo
添加到 php 子句、在 javascript 中对示例数组进行硬编码等……但都是徒劳。
将 <?php echo $str; ?>
的行更改为 [0, 5, 4], [1, 9, 10], [2, 20, 23]
可以正常工作。所以 PHP 有问题,但我无法弄清楚它是什么。
我也提到了这篇文章。 - How to pass variables and data from PHP to JavaScript? 但这没有帮助。
此外,javascript 控制台告诉我以下消息。
The console tells me Uncaught SyntaxError: Unexpected token <
我该如何解决这个问题?提前致谢。
更新1
我添加了 echo
并在 Raspberry Pi 的 Web 服务器中运行了该程序。但是,我仍然在控制台上看到一个空白页面和 Uncaught SyntaxError: Unexpected token <
。
更新2
我将扩展名更改为 php
,现在可以正常工作了。谢谢大家!
最佳答案
替换<?php $str; ?>
与 <?php echo $str; ?>
,将文件的扩展名更改为 .php 而不是 .html,一切都会正常进行。
关于javascript - 无法在 PHP 中读取 csv 并将其传递给 html 文件中的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34851142/