服务器之家

服务器之家 > 正文

PHP发送短信代码分享

时间:2020-11-17 14:20     来源/作者:PHP教程网

方法一(比较好,推荐)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//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代码

?
1
2
3
4
5
6
<?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代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?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;  
}  
   
}

 

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
电视剧《琉璃》全集在线观看 琉璃美人煞1-59集免费观看地址
电视剧《琉璃》全集在线观看 琉璃美人煞1-59集免费观看地址 2020-08-12
最新idea2020注册码永久激活(激活到2100年)
最新idea2020注册码永久激活(激活到2100年) 2020-07-29
返回顶部