In diesem Artikel werden hauptsächlich relevante Informationen zum Beispielcode für das Senden von AT-Befehlen durch PHP vorgestellt. Er ist sehr gut und hat Referenzwert. Freunde, die ihn benötigen, können einen Blick darauf werfen.
Anforderung: SMS senden an Der Benutzer gibt das Mobiltelefon ein und verlangt, dass der Nachrichteninhalt angepasst werden kann
Problem: Es gibt keinen Telekommunikationsmodus und die kostenlose API-Schnittstelle kann nicht angepasst werden Wird zum Anpassen des Textnachrichteninhalts verwendet
Lösung: Stellen Sie eine Verbindung zum Server über eine 4G-Netzwerkkarte her, bedienen Sie die Netzwerkkarte über AT-Befehle und senden Sie Textnachrichten
Nach der Überprüfung haben wir festgestellt, dass das Senden in AT-Qualität mehrere Kodierungen von Informationen erfordert und beim Senden eine Zeitüberschreitung auftritt, das eigentliche Senden jedoch erfolgreich war, das Problem wurde nicht vollständig gelöst
Der Code lautet wie folgt:
<?php send_message('', '您好, 你正在申请注册服务平台, 您的验证码是: '); function send_message($phone, $message) { $phone = decode_phone($phone); $message_center = decode_message_center('+'); //此步骤似乎没用 $message = decode_message($message); $length = get_message_length($phone, $message); set_time_limit(); //根据情况选择COM口, 此处为COM, 在管理设备中, 查看网络解调器的COM口 exec('mode COM: baud= data= stop= parity=n xon=on'); $fd = dio_open('COM:', O_RDWR); $ff = dio_stat($fd); if (!$fd) { die("failed open com"); } //chr()是回车, chr()是Ctrl+Z dio_write($fd, "AT+CMGF=" . chr()); //设置发送模式为PDU dio_write($fd, "AT+CMGS=" . $length . chr()); //发送信息长度 dio_write($fd, 'D' . $phone . '' . $message . chr() . chr()); //发送短信息 sleep(); dio_close($fd); } function decode_phone($phone) { $phone = str_replace('+', '', $phone); if (strlen($phone) % !== ) { $phone = $phone . 'F'; } $newPhone = ''; for ($i = ; $i < strlen($phone); $i += ) { $newPhone = $newPhone . substr($phone, $i + , ) . substr($phone, $i, ); } return $newPhone; } function decode_message_center($phone) { $newPhone = '' . decode_phone($phone); $len = strtoupper(dechex(strlen($newPhone) / )); if (strlen($len) % !== ) { $len = '' . $len; } $newPhone = $len . $newPhone; return $newPhone; } function decode_message($message) { $newMessage = utf_unicode($message); $len = strtoupper(dechex(strlen($newMessage) / )); if (strlen($len) % !== ) { $len = '' . $len; } $newMessage = $len . $newMessage; return $newMessage; } function utf_unicode($name) { $name = iconv('UTF-', 'UCS-', $name); $len = strlen($name); $str = ''; for ($i = ; $i < $len - ; $i = $i + ) { $c = $name[$i]; $c = $name[$i + ]; if (ord($c) > ) { //两个字节的文字 $str .= base_convert(ord($c), , ) . str_pad(base_convert(ord($c), , ), , , STR_PAD_LEFT); } else { $str .= str_pad(base_convert(ord($c), , ), , , STR_PAD_LEFT); } } $str = strtoupper($str); //转换为大写 return $str; } function get_message_length($phone, $message) { $str = 'D' . $phone . '' . $message; $length = strlen($str) / ; if ($length < ) { $length = '' . $length; } return $length; }
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, das wird so sein hilfreich für das Studium aller sein.
Verwandte Empfehlungen:
PHP Learning Record Array Function
Beispielfreigabe der PHP-Implementierung zum Exportieren von Excel mit Stil
PHP implementiert die Methode zum Erzwingen des Rückruftyps basierend auf Callable
Das obige ist der detaillierte Inhalt vonMethoden und Beispielcodes zum Senden von AT-Befehlen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!