이 글은 PHP가 AT 명령을 보내는 예제 코드에 대한 관련 정보를 주로 소개합니다. 매우 훌륭하고 참고할 가치가 있습니다. 필요한 친구들은 함께 살펴보세요
요구 사항: 사용자의 휴대폰으로 문자 메시지를 보냅니다.
문제: 통신 모드가 없으며 무료 API 인터페이스를 사용하여 문자 메시지 내용을 맞춤 설정할 수 없습니다.
해결책: 4G 네트워크 카드를 통해 연결하세요. 서버에 AT 명령으로 네트워크 카드를 작동하고 문자 메시지를 보냅니다
결과를 확인하세요. AT 품질 전송에는 정보의 다중 인코딩이 필요하며 전송 시간이 초과되지만 실제 전송은 성공하지만 문제는 없습니다. 완전히 해결되었습니다
코드는 다음과 같습니다.
<?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; }
요약: 위의 내용이 이 글의 전부입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
관련 권장 사항:
PHP 스타일이 지정된 Excel 예제 공유 내보내기 구현
PHP는 Callable을 기반으로 지정된 콜백 유형을 강제하는 방법을 구현합니다.
위 내용은 PHP에서 AT 명령을 전송하는 방법 및 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!