PHP发送短信代码分享
方法一(比较好,推荐)
//PHP发送短信Monxin专用(PHP代码函数) //本代码基于Monxin运行 //代码来源:Monxin./config/functions.php functionsms($config,$language,$pdo,$sender,$phone_number,$content){ //demovar_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($arras$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_numberas$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="insertinto".$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)){ returnsend_sms($config,$pdo,$pdo->lastInsertId()); }else{ returnfalse; } } } }
例2:在PHP5中通过file_get_contents函数发送短信(HTTPGET方式)
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,请使用下行语句输出返回信息。 //echoiconv("UTF-8","GBK",$result); ?>
例3:在PHP中通过curl发送短信(HTTPPOST方式)
PHP代码
<?php $data["username"]=13812345678; $data["password"]="password123"; $data["sendto"]=13512345678; $data["message"]="这是一条测试短信!"; $curl=newCurl_Class(); $result=@$curl->post("http://sms.api.bz/fetion.php",$data); echo$result;//返回信息默认为UTF-8编码的汉字,如果你的页面编码为gb2312,请使用下行语句输出返回信息。 //echoiconv("UTF-8","GBK",$result); //curl类 classCurl_Class { functionCurl_Class() { returntrue; } functionexecute($method,$url,$fields='',$userAgent='',$httpHeaders='',$username='',$password='') { $ch=Curl_Class::create(); if(false===$ch) { returnfalse; } if(is_string($url)&&strlen($url)) { $ret=curl_setopt($ch,CURLOPT_URL,$url); } else { returnfalse; } //是否显示头部信息 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($fieldsAS$key=>$val) { $sets[]=$key.'='.urlencode($val); } $fields=implode('&',$sets); } curl_setopt($ch,CURLOPT_POSTFIELDS,$fields); } elseif('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); returnarray(curl_error($ch),curl_errno($ch)); } else { curl_close($ch); if(!is_string($ret)||!strlen($ret)) { returnfalse; } return$ret; } } functionpost($url,$fields,$userAgent='',$httpHeaders='',$username='',$password='') { $ret=Curl_Class::execute('POST',$url,$fields,$userAgent,$httpHeaders,$username,$password); if(false===$ret) { returnfalse; } if(is_array($ret)) { returnfalse; } return$ret; } functionget($url,$userAgent='',$httpHeaders='',$username='',$password='') { $ret=Curl_Class::execute('GET',$url,'',$userAgent,$httpHeaders,$username,$password); if(false===$ret) { returnfalse; } if(is_array($ret)) { returnfalse; } return$ret; } functioncreate() { $ch=null; if(!function_exists('curl_init')) { returnfalse; } $ch=curl_init(); if(!is_resource($ch)) { returnfalse; } return$ch; } }