PHP发送AT指令,phpat指令
程序员文章站
2022-05-15 21:27:50
...
PHP发送AT指令,phpat指令
需求: 发送短信到用户输入手机, 要求可以自定义信息内容
问题: 没有电信猫, 使用免费api接口无法自定义短信内容
解决方案: 通过4G网卡, 接在服务器上, 通过AT指令操作网卡, 发送短信
查阅发现, AT质量发送需要对信息进行多重编码, 而且发送超时, 但实际发送成功, 问题还未完全解决
代码如下:
1 php 2 send_message('8613800138000', '您好, 你正在申请注册服务平台, 您的验证码是: 97431'); 3 4 function send_message($phone, $message) { 5 $phone = decode_phone($phone); 6 7 $message_center = decode_message_center('+8613010200500'); //此步骤似乎没用 8 9 $message = decode_message($message); 10 11 $length = get_message_length($phone, $message); 12 13 set_time_limit(0); 14 15 //根据情况选择COM口, 此处为COM4, 在管理设备中, 查看网络解调器的COM口 16 17 exec('mode COM4: baud=115200 data=8 stop=1 parity=n xon=on'); 18 19 $fd = dio_open('COM4:', O_RDWR); 20 21 $ff = dio_stat($fd); 22 23 if (!$fd) { 24 die("failed open com4"); 25 } 26 27 //chr(13)是回车, chr(16)是Ctrl+Z 28 29 dio_write($fd, "AT+CMGF=0" . chr(13)); //设置发送模式为PDU 30 31 dio_write($fd, "AT+CMGS=" . $length . chr(13)); //发送信息长度 32 33 dio_write($fd, '11000D91' . $phone . '000800' . $message . chr(26) . chr(13)); //发送短信息 34 35 sleep(2); 36 37 dio_close($fd); 38 } 39 40 function decode_phone($phone) { 41 $phone = str_replace('+', '', $phone); 42 43 if (strlen($phone) % 2 !== 0) { 44 $phone = $phone . 'F'; 45 } 46 47 $newPhone = ''; 48 for ($i = 0; $i strlen
推荐阅读
-
PHP中break及continue两个流程控制指令解析
-
下达一个指令让 Outlook 进驻 Excel 并发送邮件
-
C#编程实现向并口设备发送指令、获取并口设备的状态
-
php.ini中的php-5.2.0配置指令详解
-
关于在php.ini中添加extension=php_mysqli.dll指令的说明
-
idea ssm项目java程序向串口发送指令并且使用十六进制 rxtx包的方法
-
ESP8266使用AT指令发送GET方式HTTP请求
-
PHP 配置指令 include_path 详解
-
PHP语言标记、指令分隔符、注释讲解
-
[Linux] nginx的try_files指令实现隐藏index.php的重写