PHP發(fā)送短信代碼分享
方法一(比較好,推薦)
//PHP發(fā)送短信 Monxin專用(PHP代碼函數(shù)) //本代碼基于Monxin 運(yùn)行 //代碼來源: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","測試內(nèi)容,時間".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函數(shù)發(fā)送短信(HTTP GET 方式)
PHP代碼
<?php $url = "http://sms.api.bz/fetion.php?username=13812345678&password=123456&sendto=13512345678&message=短信內(nèi)容"; $result = file_get_contents($url); echo $result; //返回信息默認(rèn)為UTF-8編碼的漢字,如果你的頁面編碼為gb2312,請使用下行語句輸出返回信息。 //echo iconv("UTF-8", "GBK", $result); ?>
例3:在PHP中通過curl發(fā)送短信(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; //返回信息默認(rèn)為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);//設(shè)置curl超時秒數(shù) 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; } }
相關(guān)文章
PHP JSON出錯:Cannot use object of type stdClass as array解決方法
這篇文章主要介紹了PHP JSON出錯:Cannot use object of type stdClass as array解決方法,需要的朋友可以參考下2014-08-08javascript,php獲取函數(shù)參數(shù)對象的代碼
javascript,php獲取函數(shù)參數(shù)對象的代碼,需要的朋友可以參考下。2011-02-02PHP后期靜態(tài)綁定之self::限制實(shí)例分析
這篇文章主要介紹了PHP后期靜態(tài)綁定之self::限制,結(jié)合實(shí)例形式分析了php后期靜態(tài)綁定self::與static相關(guān)使用技巧,需要的朋友可以參考下2018-12-12PHP基于timestamp和nonce實(shí)現(xiàn)的防止重放攻擊方案分析
這篇文章主要介紹了PHP基于timestamp和nonce實(shí)現(xiàn)的防止重放攻擊方案,簡單講述了重放攻擊相關(guān)原理并結(jié)合實(shí)例形式分析了php使用timestamp和nonce實(shí)現(xiàn)的防止重放攻擊相關(guān)操作技巧,需要的朋友可以參考下2019-07-07php和html的區(qū)別點(diǎn)詳細(xì)總結(jié)
在本篇文章里小編給大家整理了關(guān)于php和html的區(qū)別點(diǎn),有需要的朋友們可以參考下。2019-09-09php實(shí)現(xiàn)獲取局域網(wǎng)所有用戶的電腦IP和主機(jī)名、及mac地址完整實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)獲取局域網(wǎng)所有用戶的電腦IP和主機(jī)名、及mac地址,非常實(shí)用,需要的朋友可以參考下2014-07-07