PHP发送短信代码分享


Posted in PHP onAugust 11, 2015

方法一(比较好,推荐)

//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;$i<$section;$i++){
    $phone[$i]='';
    for($j=$i*$config['sms']['max'];$j<($i+1)*$config['sms']['max'];$j++){
      //echo $j.',';
      if(isset($addressee[$j])){$phone[$i].=$addressee[$j].$config['sms']['delimiter'];}
    }
    $phone[$i]=trim($phone[$i],$config['sms']['delimiter']);
    $temp=explode($config['sms']['delimiter'],$phone[$i]);
    $count=count($temp);
    $length=ceil(strlen(preg_replace('/[\x80-\xff]{3}/','x',$content))/($config['sms']['length']/2));
    $count=$length*$count;
    if(!isset($timing)){$timing=0;}
    if($phone[$i]!=''){
      $time=time();
      $sql="insert into ".$pdo->index_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代码

<?php   
$url = "http://sms.api.bz/fetion.php?username=13812345678&password=123456&sendto=13512345678&message=短信内容";   
$result = file_get_contents($url);   
echo $result; //返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。   
//echo iconv("UTF-8", "GBK", $result);   
?>

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

PHP代码

<?php   
$data["username"] = 13812345678;   
$data["password"] = "password123";   
$data["sendto"] = 13512345678;   
$data["message"] = "这是一条测试短信!";   
   
$curl = new Curl_Class();   
$result = @$curl->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 相关文章推荐
第二节--PHP5 的对象模型
Nov 16 PHP
php curl选项列表(超详细)
Jul 01 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
php编程每天必学之表单验证
Mar 01 PHP
理解php依赖注入和控制反转
May 11 PHP
php htmlentities()函数的定义和用法
May 13 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 PHP
CI框架简单分页类用法示例
Jun 06 PHP
php实现可逆加密的方法
Aug 11 #PHP
PHP实现获取某个月份周次信息的方法
Aug 11 #PHP
PHP实现删除字符串中任何字符的函数
Aug 11 #PHP
详解php的socket通信
Aug 11 #PHP
Java中final关键字详解
Aug 10 #PHP
php生成二维码
Aug 10 #PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 #PHP
You might like
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
js查错流程归纳
2012/05/04 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
js实现微博发布小功能
2017/01/12 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
js+html5实现半透明遮罩层弹框效果
2020/08/24 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
js实现左右轮播图
2020/01/09 Javascript
vue实现登录拦截
2020/06/29 Javascript
js实现弹窗效果
2020/08/09 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
python数据结构树和二叉树简介
2014/04/29 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
Python模块WSGI使用详解
2018/02/02 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
百度吧主申请感言
2014/01/12 职场文书
公司任命书范本
2014/06/04 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
公证处委托书
2015/01/28 职场文书
采购部年度工作总结
2015/08/13 职场文书