PHP SMSを使用してSMSを送信する方法
Mar 17, 2018 am 09:33 AM
php
送信
方法
この記事では主に、PHP を使用して SMS Bao を使用してテキスト メッセージを送信する方法を説明します。SMS Bao を使用するには、公式 Web サイトでユーザー名とパスワードを登録する必要があります。
注: SMS を購入していない場合は、SMS の速度をテストするためにのみ使用されます。SMS の内容は編集できません。変更できるのは確認コード番号のみです。 。
テスト操作は図に示すとおりです:
本題に入ります:
SMS Bao を使用するには、SmsBao.class.php ファイルが必要です。このファイルは Org ディレクトリに配置されます。ファイルの内容は一番下にあります
発信者コード:
にアクセスすると、
<?phpnamespace Home\Controller;use Think\Controller;use Org\Sms\SmsBao;class IndexController extends Controller { public function index(){ $sms = new SmsBao("账号", "密码"); $msg = $sms->sendSms("1537539****", "这是一个测试短信!"); if($msg['status'] == 0) { echo '发送成功!'; } else { echo '发送失败!'; } echo $sms->getBalance(); // 返回剩余条数 } }
ログイン後にコピー
が表示されます SMS Baoにログインし、リクエストレコードを入力すると、
SMS Baoテスト入口からテストすると、携帯電話でテキストメッセージが表示され、公式Webサイトの送信記録に内容が表示されます
返信すると、返信内容が表示されます返信レコード内
添付:
SmsBao.class.php content
<?php// +----------------------------------------------------------------------// | smsbao for thinkPHP// +----------------------------------------------------------------------// | Copyright (c) 2005 http://smsbao.com All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://smsbao.com )// +----------------------------------------------------------------------namespace Org\Sms;/** * SmsBao实现类 * @category Think * @package Think * @subpackage Sms */class SmsBao { private $account;//短信包账户 private $password;//密码 private $balance;//短信剩余条数 const sendSmsUrl = "http://api.smsbao.com/sms"; const queryBalanceUrl = "http://api.smsbao.com/query"; /** * 架构函数 * @access public * @param string $account 在短信宝注册的账户名 * @param string $password 在短信宝注册的账户名的密码 */ public function __construct($account,$password) { if (empty($account) || empty($password)) { E("用户名和密码不可为空!"); } $this->account = $account; $this->password = $password; } /** * 发送短信函数 * @access public * @param string $mobile 手机号,多个手机号用英文逗号分隔 * @param string $content 发送内容 * @return array 返回值为数组,其中status为0表明发送成功,其他情况下发送失败,失败原因为msg */ public function sendSms($mobile,$content){ $param['u'] = $this->account; $param['p'] = md5($this->password); $param['m'] = $mobile; $param['c'] = $content; $ret = self::http(self::sendSmsUrl, $param); $data['status'] = $ret; $data['msg'] = $ret == 0 ?'发送成功' : self::getResult($ret); return $data; } /** * 获取短信剩余条数函数 * @access public */ public function getBalance(){ $param['u'] = $this->account; $param['p'] = md5($this->password); $ret = self::http(self::queryBalanceUrl, $param); $retArr = split("\n", $ret); $balanceArr = split(",", $retArr[1]); $this->balance = $retArr[0] == 0 ? $balanceArr[1] : self::getResult($ret); return $this->balance; } /** * 发送http请求 * @access protected * @param string $url 请求地址 * @param string $param get方式请求内容,数组形式,post方式时无效 * * @param string $data post请求方式时的内容,get方式时无效 * @param string $method 请求方式,默认get */ protected static function http($url, $param, $data = '', $method = 'GET'){ $opts = array( CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, ); /* 根据请求类型设置特定参数 */ $opts[CURLOPT_URL] = $url . '?' . http_build_query($param); if(strtoupper($method) == 'POST'){ $opts[CURLOPT_POST] = 1; $opts[CURLOPT_POSTFIELDS] = $data; if(is_string($data)){ //发送JSON数据 $opts[CURLOPT_HTTPHEADER] = array( 'Content-Type: application/json; charset=utf-8', 'Content-Length: ' . strlen($data), ); } } /* 初始化并执行curl请求 */ $ch = curl_init(); curl_setopt_array($ch, $opts); $data = curl_exec($ch); $error = curl_error($ch); curl_close($ch); //发生错误,抛出异常 if($error) throw new \Exception('请求发生错误:' . $error); return $data; } private function getResult($key){ $rst['30'] = '密码错误'; $rst['40'] = '账号不存在'; $rst['41'] = '余额不足'; $rst['42'] = '帐号过期'; $rst['43'] = 'IP地址限制'; $rst['50'] = '内容含有敏感词'; $rst['51'] = '手机号码不正确'; return $rst[$key]; } }
ログイン後にコピー
以上がPHP SMSを使用してSMSを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7134
9


Java チュートリアル
1534
14


Laravel チュートリアル
1257
25


PHP チュートリアル
1205
29


CakePHP チュートリアル
1154
46



Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
