最近要用php发送和接收短信,用户订单要用短信通知一类的功能,网上看了好多短信平台感觉都不靠谱。也测试了很多代码,下面把几款好用的分享给大家
方法一(比较好,推荐)
//php发送短信 monxin专用(php代码函数)//本代码基于monxin 运行//代码来源:monxin ./config/functions.phpfunction 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;}}