php可以发短信的代码,PHP发送短信代码分享

最近要用php发送和接收短信,用户订单要用短信通知一类的功能,网上看了好多短信平台感觉都不靠谱。也测试了很多代码,下面把几款好用的分享给大家

方法一(比较好,推荐)

//PHP发送短信 Monxin专用(PHP代码函数)

//本代码基于Monxin 运行

//代码来源:Monxin ./config/functions.php

function sms($config,$language,$pdo,$sender,$phone_number,$content){

//demo var_dump(sms(self::$config,self::$language,$pdo,"system","18074507509,15507455992","测试内容,,时间".date("H:i:s",time())));

$sender=safe_str($sender);

$content=safe_str($content);

$arr=explode(',',$config['sms']['disable_phrase']);

$disable=false;

foreach($arr as $v){

if(strpos($content,$v)!==false){$phrase=$v;$disable=true;continue;}

}

if($disable){return $language['exist_disable_phrase']." ".$phrase;}

$phone_number=explode(',',$phone_number);

$phone_number=array_unique($phone_number);

$addressee='';

$count=0;

foreach($phone_number as $v){

if(preg_match($config['other']['reg_phone'],$v)){$addressee.=$v.',';}

}

$addressee=trim($addressee,',');

$addressee=explode(",",$addressee);

//var_dump($addressee);

$section=ceil(count($addressee)/$config['sms']['max']);

for($i=0;$iindex_pre."phone_msg (`sender`,`addressee`,`content`,`state`,`time`,`count`,`timing`) values ('$sender','".$phone[$i]."','".$content."','1','$time','$count','0')";

if($pdo->exec($sql)){

return send_sms($config,$pdo,$pdo->lastInsertId());

}else{

return false;

}

}

}

}

例2:在PHP5中通过file_get_contents函数发送短信(HTTP GET 方式)

PHP代码

例3:在PHP中通过curl发送短信(HTTP POST 方式)

PHP代码

post("http://sms.api.bz/fetion.php", $data);

echo $result; //返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。

//echo iconv("UTF-8", "GBK", $result);

//curl类

class Curl_Class

{

function Curl_Class()

{

return true;

}

function execute($method, $url, $fields = '', $userAgent = '', $httpHeaders = '', $username = '', $password = '')

{

$ch = Curl_Class::create();

if (false === $ch)

{

return false;

}

if (is_string($url) && strlen($url))

{

$ret = curl_setopt($ch, CURLOPT_URL, $url);

}

else

{

return false;

}

//是否显示头部信息

curl_setopt($ch, CURLOPT_HEADER, false);

//

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if ($username != '')

{

curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);

}

$method = strtolower($method);

if ('post' == $method)

{

curl_setopt($ch, CURLOPT_POST, true);

if (is_array($fields))

{

$sets = array();

foreach ($fields AS $key => $val)

{

$sets[] = $key . '=' . urlencode($val);

}

$fields = implode('&',$sets);

}

curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);

}

else if ('put' == $method)

{

curl_setopt($ch, CURLOPT_PUT, true);

}

//curl_setopt($ch, CURLOPT_PROGRESS, true);

//curl_setopt($ch, CURLOPT_VERBOSE, true);

//curl_setopt($ch, CURLOPT_MUTE, false);

curl_setopt($ch, CURLOPT_TIMEOUT, 10);//设置curl超时秒数

if (strlen($userAgent))

{

curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);

}

if (is_array($httpHeaders))

{

curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders);

}

$ret = curl_exec($ch);

if (curl_errno($ch))

{

curl_close($ch);

return array(curl_error($ch), curl_errno($ch));

}

else

{

curl_close($ch);

if (!is_string($ret) || !strlen($ret))

{

return false;

}

return $ret;

}

}

function post($url, $fields, $userAgent = '', $httpHeaders = '', $username = '', $password = '')

{

$ret = Curl_Class::execute('POST', $url, $fields, $userAgent, $httpHeaders, $username, $password);

if (false === $ret)

{

return false;

}

if (is_array($ret))

{

return false;

}

return $ret;

}

function get($url, $userAgent = '', $httpHeaders = '', $username = '', $password = '')

{

$ret = Curl_Class::execute('GET', $url, '', $userAgent, $httpHeaders, $username, $password);

if (false === $ret)

{

return false;

}

if (is_array($ret))

{

return false;

}

return $ret;

}

function create()

{

$ch = null;

if (!function_exists('curl_init'))

{

return false;

}

$ch = curl_init();

if (!is_resource($ch))

{

return false;

}

return $ch;

}

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 PHP 发送阿里云的示例代码: ```php // 替换成你的 AccessKeyId 和 AccessKeySecret $accessKeyId = "your_access_key_id"; $accessKeySecret = "your_access_key_secret"; // 签名和模板编号 $signName = "your_sign_name"; $templateCode = "your_template_code"; // 手机号码和验证码 $phoneNumbers = "18888888888"; $verifyCode = "123456"; // 构建请求参数 $params = array ( "code" => $verifyCode ); // 起请求 $helper = new SmsHelper($accessKeyId, $accessKeySecret); $response = $helper->send($phoneNumbers, $signName, $templateCode, $params); // 处理响应结果 if ($response->Code == 'OK') { // 发送成功 } else { // 发送失败 } // SmsHelper 类定义 class SmsHelper { private $accessKeyId; private $accessKeySecret; private $serverUrl = "http://dysmsapi.aliyuncs.com"; public function __construct($accessKeyId, $accessKeySecret) { $this->accessKeyId = $accessKeyId; $this->accessKeySecret = $accessKeySecret; } public function send($phoneNumbers, $signName, $templateCode, $params) { $paramsJson = json_encode($params); $paramsArray = array ( "PhoneNumbers" => $phoneNumbers, "SignName" => $signName, "TemplateCode" => $templateCode, "TemplateParam" => $paramsJson, "RegionId" => "cn-hangzhou", "Action" => "SendSms", "Version" => "2017-05-25" ); $paramsString = http_build_query($paramsArray); $signature = $this->computeSignature($paramsArray); $url = "{$this->serverUrl}/?Signature={$signature}&{$paramsString}"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); return json_decode($response); } private function computeSignature($params) { ksort($params); $canonicalQueryString = http_build_query($params); $stringToSign = "GET&%2F&" . urlencode($canonicalQueryString); $signature = base64_encode(hash_hmac("sha1", $stringToSign, $this->accessKeySecret . "&", true)); return urlencode($signature); } } ``` 在上面的代码中,`SmsHelper` 类封装了发送的方法,其中 `send` 方法接受手机号码、签名、模板编号和消息参数作为参数,返回一个响应对象。你只需要将代码中的占位符替换成你自己的参数即可在你的应用程序中使用这个类发送
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值