php - PHP死突然停止显示字符串
问题描述
我是php的菜鸟。我已经使用 php 中的脚本与 arduino 通信超过 1 年了。
Arduino 将数据发送到我的 php 脚本,它会回答 arduino 可以读取的文本,以了解数据是否已正确保存。还有一种方法可以获取 arduino 从我的 mysql 数据库启动时需要的一些设置。
我一直在回复我的 arduino 答案的方式是使用“DIE”功能。
我有这个 php 文件(伪代码):
function.php(几个函数)
function response($str) {
die('<' . $str . '>'); //< and > is to let arduino knows exactly the answer
}
function get_settings() {
$response = "";
// ...... so response is completed
return $response;
}
index.php(这个文件包括一个“require_once”,用于function.php
和gate.php
,以及其他功能。它是主文件)
gate.php(从 arduino 接收数据并需要发送答案的脚本文件)
//it gets data from $_GET and saves it into a mysql database
//After that:
if ($result) {
response('OK');
} else {
response('BAD_VALUES');
}
//And with other params in the $_GET, it does:
if ($_GET['k'] === ARDUINO_KEY) {
response(get_settings());
} else {
response('BAD KEY');
}
本周以来的问题是:1.如果我想得到“response('OK');” 从gate.php
我没有得到任何东西,在 Chrome 中我也看不到任何东西 2. 如果我想得到“response(get_settings());” 从 gate.php 我确实得到了信息,Chrome 正在显示它。3. 如果我将这一行“response(get_settings());”更改为“response('OK');” 或“响应(“OK”);” 我什么都没有,在 Chrome 中我什么也看不到
你怎么看待这件事?为什么返回字符串的函数有效,而字符串无效。为什么它工作了几个月,突然就不行了?
我已经在我的“免费主机计划”和 usbWebserver 中检查了它。
非常感谢你的帮助。
解决方案
关于括号中的字符串die()
及其等价物exit()
,PHP手册指出:
如果
status
(即在您的情况下为字符串)是整数,则该值将用作退出状态而不打印。退出状态应在 0 到 254 的范围内,退出状态 255 由 PHP 保留,不得使用。状态 0 用于成功终止程序。
和
不返回任何值。
所以你可以使用echo
来获得可见的输出,然后使用die()
推荐阅读
- python - 有没有一种方法可以创建可供 .NET 和 Python 使用的库?
- python - 我是 python 新手,我偶然发现了一个函数/变量?我不知道它是做什么的,有人可以解释一下吗?
- python - 如何在模板的类中显示函数的循环?
- reporting-services - 如何查找 SSRS 报告的最后部署日期
- c# - WPF Datagrid:根据单元格值为整行或行中的第一个单元格着色
- android - 自定义可绘制状态
- php - PHP 中 Iconomi API 中的身份验证
- microcontroller - int32_t 用于 32 微控制器中的堆栈
- linux - 大对齐的 mmap
- javascript - 如何将我的字符串输出转换为对象,以便使用 javascript 将 json 作为输出?