Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我';我在短信中接收at命令?_Php_Gsm_At Command - Fatal编程技术网

Php 为什么我';我在短信中接收at命令?

Php 为什么我';我在短信中接收at命令?,php,gsm,at-command,Php,Gsm,At Command,我试图通过PHP发送短信,通过USB调制解调器使用AT命令。我可以从PHP服务器发送短信到特定的电话号码。但问题是,当我向手机发送一些短信时,我也会收到我用来发送短信的命令 server.php $fp = fopen('COM4', 'r+'); $writtenBytes = fputs($fp, "AT\r\n"); $writtenBytes = fputs($fp, "AT+CMGF=1\r\n"); $writtenBytes = fputs($fp, "WAIT=1\r\n");

我试图通过PHP发送短信,通过USB调制解调器使用AT命令。我可以从PHP服务器发送短信到特定的电话号码。但问题是,当我向手机发送一些短信时,我也会收到我用来发送短信的命令

server.php

$fp = fopen('COM4', 'r+');
$writtenBytes = fputs($fp, "AT\r\n");
$writtenBytes = fputs($fp, "AT+CMGF=1\r\n");
$writtenBytes = fputs($fp, "WAIT=1\r\n");
$writtenBytes = fputs($fp, "AT+CSCS=\"GSM\"\n\r");
$writtenBytes = fputs($fp, "WAIT=1\r\n");
$writtenBytes = fputs($fp, "AT+CMGS=\"+91xxxxxxxxxx\"\r\n");
$writtenBytes = fputs($fp, "sample text here\n\r");
$writtenBytes = fputs($fp, chr(26));
预期输出:

这里是示例文本

但我收到的短信是:

AT+CMGF=1

等待=1

AT+CSCS=“GSM”

等待=1

AT+CMGS=“+91XXXXXXXXX”

这里是示例文本


我怎样才能发送短信,而不向手机发送AT命令?

您的代码包含三个基本的误解,如果您不纠正,您将永远无法成功地进行AT命令通信

首先最重要的是丁:你必须。有时人们会错误地使用
delay
sleep
等来解析响应,但这里您甚至没有这样做,而是尽可能快地调用fputs。这是一场灾难,有时甚至远不能可靠地工作。我强烈建议放弃/取消订阅任何显示此类代码示例1的博客/网站/视频频道

然后就是这个问题要问的那个。如果您关心echo是否打开

特别是对于+CMGS的
AT
,您也必须在发送SMS有效负载之前


一,
同样,如果有人建议用肥皂和水清洗汽车发动机内部,你也不应该听这个人说任何与汽车维修有关的话。他们可能会在其他方面提供有价值的信息(比如食物配方和烹饪建议),但不会从他们那里获得汽车维修技巧。

感谢您宝贵的信息和时间,这非常有用。但是仍然有疑问,我可以使用什么来代替sleep(),以使其产生延迟(在PHP中)。我不知道如何使用,但我通过在代码末尾添加ob_flush()解决了这个问题!!