PHP死了突然停止显示字符串

时间:2018-05-30 21:46:08

标签: php die

我是一个使用php的菜鸟。我已经使用了超过1年的PHP脚本来与arduino通信。

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 (此文件包含&#34; require_once&#34; function.phpgate.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.如果我想得到回复(&#39; OK&#39;);&#34;来自gate.php我不会得到任何东西,在Chrome中我也看不到任何东西 2.如果我想得到&#34;响应(get_settings());&#34;来自gate.php我得到了信息,Chrome正在显示它。 3.如果我将此行&#34;响应(get_settings());&#34;,更改为&#34;响应(&#39;确定&#39;);&#34;或者#34;响应(&#34; OK&#34;);&#34;我不能得到任何东西,在Chrome中我也看不到任何东西

您如何看待这个?为什么返回字符串的函数有效,而字符串则无效。为什么它已经工作了几个月而且突然没有?

我已在我的&#34; freehosting计划&#34;中检查过它。和usbWebserver。

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

关于die()及其等价exit()括号中的字符串,PHP手册指出:

  

如果status(即在您的情况下是字符串)是一个整数,那么该值将用作退出状态   而不是印刷。退出状态应该在0到254的范围内   退出状态255由PHP保留,不得使用。状态0   用于成功终止程序。

  

没有返回任何值。

因此,您只需使用echo获取可见输出,然后使用die()

答案 1 :(得分:0)

我做了这个检查:

die('<' . $str . '>');   ----> doesn't work
die('#' . $str . '>');   ----> works !!!
die('#' . $str . '<');   ----> works !!!
die('>' . $str . '<');   ----> works !!!

所以它不喜欢'&lt;'在开始。

为什么?而且,为什么这周发生了?

注意:我可以更改这些外部字符,但我想了解问题的真正原因

嗨,有人知道???