javascript - 无法在 PHP 中读取 csv 并将其传递给 html 文件中的 javascript

标签 javascript php windows csv raspberry-pi

环境

  • 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/

相关文章:

c - 当事件发生时如何启动多个线程?

javascript 基本不工作 - 未定义 $

php - 在 MySQL 中使用 LIKE 子句优化表以进行搜索

php - 将相同的元数据插入多个表的相同列时,如何减少重复代码?

PHP - fatal error :未捕获错误:调用未定义的方法 PDO::statement()

c++ - 复制文件进度条

c# - 在调用 InitiateSystemShutdownEX 后,如何检测将来是否安排重启?

javascript - 内容编辑器 Web 部件中的 iFrame

javascript - Firebase 帐户链接错误

javascript - 在 Three.js 中恢复旋转