【问题标题】:Execute AT commands to send sms in php在php中执行AT命令发送短信
【发布时间】:2013-04-09 13:08:27
【问题描述】:

我正在尝试从 PHP 执行 AT 命令。

我试过 exec() 和 shell_exec()

请不要建议第三方短信网关 我的客户不想透露他的私人信息,想从他自己的服务器上发送短信。

我有一个 GSM 调制解调器连接到一个串行端口,我可以通过“腻子”访问该端口,如图

我可以输入 AT 命令来发送短信,如下图所示。

我想通过 PHP 运行那些 AT 命令。

【问题讨论】:

标签: php sms at-command


【解决方案1】:

您好,我正在通过此 php 代码在 Windows 8 上使用 php 类发送短信。

require "php_serial.class.php";
$serial = new phpSerial;
$serial->deviceSet("COM4");
$serial->confBaudRate(115200);

// Then we need to open it
$serial->deviceOpen();

// To write into
$serial->sendMessage("AT+CMGF=1\n\r"); 
$serial->sendMessage("AT+cmgs=\"+92234444444\"\n\r");
$serial->sendMessage("sms text\n\r");
$serial->sendMessage(chr(26));

//wait for modem to send message
sleep(7);
$read=$serial->readPort();
$serial->deviceClose();

PHP SERIAL class Link

【讨论】:

  • 嗨@xam你能不能也为php_serial.class.php文件添加链接或代码
  • 嗨@MilindMore 我已经从谷歌驱动器生成了链接,它是用于 php_serial.class.php 文件的。 link for php_serial.class.php
  • 这适用于 USB 调制解调器吗?我收到错误“指定的串行端口无效”
  • @IvorySantos 我没有尝试过,但如果您的 USB 调制解调器出现在“端口(COM 和 LPT)”部分下的设备管理器中,那么它应该可以工作
  • @JosuaMarcelChrisano 很高兴听到 :) 如果它有效,也可以投票
【解决方案2】:

你只需要一个像这样的 RS232 通信类 http://www.phpclasses.org/package/3679-PHP-Communicate-with-a-serial-port.html

你也可以使用 fopen()

exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on');
$fd = fopen('COM1:', O_RDWR);
fwrite($fd,chr(0).chr(1));
fclose($fd);

【讨论】:

  • 我认为您的建议将有助于您使用 phpclasses 提供的建议,请检查并告诉我是否在这里执行代码$serial->sendMessage("AT+CMGS='8149823689' ".chr(13)." hello world");
  • 我没有尝试过这个库,所以我无法确认你做得对;)
  • 顺便说一句:如果您的服务器在 Windows 上运行,我不确定在不使用外部应用程序/库的情况下与 PHP 的串行通信是否能够完全正常工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多