>백엔드 개발 >PHP 튜토리얼 >PHP에서 AT 명령을 전송하는 방법 및 예제 코드

PHP에서 AT 명령을 전송하는 방법 및 예제 코드

墨辰丷
墨辰丷원래의
2018-06-02 10:02:071598검색

이 글은 PHP가 AT 명령을 보내는 예제 코드에 대한 관련 정보를 주로 소개합니다. 매우 훌륭하고 참고할 가치가 있습니다. 필요한 친구들은 함께 살펴보세요

요구 사항: 사용자의 휴대폰으로 문자 메시지를 보냅니다.

문제: 통신 모드가 없으며 무료 API 인터페이스를 사용하여 문자 메시지 내용을 맞춤 설정할 수 없습니다.

해결책: 4G 네트워크 카드를 통해 연결하세요. 서버에 AT 명령으로 네트워크 카드를 작동하고 문자 메시지를 보냅니다

결과를 확인하세요. AT 품질 전송에는 정보의 다중 인코딩이 필요하며 전송 시간이 초과되지만 실제 전송은 성공하지만 문제는 없습니다. 완전히 해결되었습니다

코드는 다음과 같습니다.

<?php
send_message(&#39;&#39;, &#39;您好, 你正在申请注册服务平台, 您的验证码是: &#39;);
function send_message($phone, $message) {
$phone = decode_phone($phone);
$message_center = decode_message_center(&#39;+&#39;); //此步骤似乎没用
$message = decode_message($message);
$length = get_message_length($phone, $message);
set_time_limit();
//根据情况选择COM口, 此处为COM, 在管理设备中, 查看网络解调器的COM口
exec(&#39;mode COM: baud= data= stop= parity=n xon=on&#39;);
$fd = dio_open(&#39;COM:&#39;, 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, &#39;D&#39; . $phone . &#39;&#39; . $message . chr() . chr()); //发送短信息
sleep();
dio_close($fd);
}
function decode_phone($phone) {
$phone = str_replace(&#39;+&#39;, &#39;&#39;, $phone);
if (strlen($phone) % !== ) {
$phone = $phone . &#39;F&#39;;
}
$newPhone = &#39;&#39;;
for ($i = ; $i < strlen($phone); $i += ) {
$newPhone = $newPhone . substr($phone, $i + , ) . substr($phone, $i, );
}
return $newPhone;
}
function decode_message_center($phone) {
$newPhone = &#39;&#39; . decode_phone($phone);
$len = strtoupper(dechex(strlen($newPhone) / ));
if (strlen($len) % !== ) {
$len = &#39;&#39; . $len;
}
$newPhone = $len . $newPhone;
return $newPhone;
}
function decode_message($message) {
$newMessage = utf_unicode($message);
$len = strtoupper(dechex(strlen($newMessage) / ));
if (strlen($len) % !== ) {
$len = &#39;&#39; . $len;
}
$newMessage = $len . $newMessage;
return $newMessage;
}
function utf_unicode($name) {
$name = iconv(&#39;UTF-&#39;, &#39;UCS-&#39;, $name);
$len = strlen($name);
$str = &#39;&#39;;
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 = &#39;D&#39; . $phone . &#39;&#39; . $message;
$length = strlen($str) / ;
if ($length < ) {
$length = &#39;&#39; . $length;
}
return $length;
}

요약: 위의 내용이 이 글의 전부입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장 사항:

PHP 학습 기록 배열 기능

PHP 스타일이 지정된 Excel 예제 공유 내보내기 구현

PHP는 Callable을 기반으로 지정된 콜백 유형을 강제하는 방법을 구현합니다.

위 내용은 PHP에서 AT 명령을 전송하는 방법 및 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.