调用发送短信 Monxin专用(PHP代码函数)
2015-04-09 10:50
465 查看
//调用发送短信 Monxin专用(PHP代码函数) //本代码基于Monxin 运行 //代码来源:Monxin ./config/functions.php function send_sms($config,$pdo,$id=0){ function match_result($success_val,$state){ $operational_character=array('=','≠','∈','>','<',); $temp=str_split($success_val); if(!in_array($temp[0],$operational_character)){ $temp[0]='='; }else{ $success_val=mb_substr($success_val,1); } $send_state=false; switch($temp[0]){ case '=': if($state==$success_val){$send_state=true;} break; case '≠': if($state!=$success_val){$send_state=true;} break; case '∈': if(strpos($state,$success_val)!==false){$send_state=true;} break; case '<': if(intval($state)<intval($success_val)){$send_state=true;} break; case '>': if(intval($state)>intval($success_val)){$send_state=true;} break; } return $send_state; } $id=intval($id); if($id==0){ $sql="select * from ".$pdo->index_pre."phone_msg where `state`='1' order by `time` asc limit 0,1"; }else{ $sql="select * from ".$pdo->index_pre."phone_msg where `id`='$id' and `state`='1'"; } $r=$pdo->query($sql,2)->fetch(2); if($r['addressee']!='' && $r['content']!=''){ $r=de_safe_str($r); if($config['sms']['send_method']=='GET'){ $param="&".$config['sms']['phones_field']."=".$r['addressee']; $param.="&".$config['sms']['content_field']."=".urlencode(iconv('utf-8',$config['sms']['server_charset'],$r['content'])); $param.="&".$config['sms']['username_field']."=".$config['sms']['username']; $param.="&".$config['sms']['password_field']."=".$config['sms']['password']; if($config['sms']['timing'] && $r['timing']!=0){ if($config['sms']['time_style']!='Unix'){$time=date($config['sms']['time_style'],$r['timing']);}else{$time=$r['timing'];} $time=str_replace(" ","%20",$time); $param.="&".$config['sms']['time_field']."=".$time; } $ctx=stream_context_create(array('http'=>array('timeout'=>30))); if(strpos($config['sms']['send_url'],"?")==false){ $url=$config['sms']['send_url']."?".trim($param,"&"); }else{ $url=$config['sms']['send_url'].$param; } $url.="&monxin_domain=".$_SERVER['HTTP_HOST']; file_put_contents("test.txt",$url); $ctx=stream_context_create(array('http'=>array('timeout'=>30))); //echo $url; $state=@file_get_contents($url,false,$ctx); $state=iconv($config['sms']['server_charset'],"utf-8",$state); $state=trim($state); //echo $state; //var_dump(strpos($state,$config['sms']['success_val'])); $operational_character=array('=','≠','∈','>','<',); $temp=str_split($config['sms']['success_val']); if(!in_array($temp[0],$operational_character)){ $temp[0]='='; }else{ $config['sms']['success_val']=mb_substr($config['sms']['success_val'],0); } $send_state=match_result($config['sms']['success_val'],$state); if($send_state){ $sql="update ".$pdo->index_pre."phone_msg set `state`='2' where `id`='".$r['id']."'"; $pdo->exec($sql); return true; }else{ $sql="update ".$pdo->index_pre."phone_msg set `state`='3' where `id`='".$r['id']."'"; $pdo->exec($sql); return false; } }else{ $post_data=array(); $post_data[$config['sms']['phones_field']]=$r['addressee']; $post_data[$config['sms']['content_field']]=urlencode(iconv('utf-8',$config['sms']['server_charset'],$r['content'])); $post_data[$config['sms']['username_field']]=$config['sms']['username']; $post_data[$config['sms']['password_field']]=$config['sms']['password']; if($config['sms']['timing'] && $r['timing']!=0){ if($config['sms']['time_style']!='Unix'){$time=date($config['sms']['time_style'],$r['timing']);}else{$time=$r['timing'];} $post_data[$config['sms']['time_field']]=$time; } $o=""; foreach ($post_data as $k=>$v){$o.= "$k=".urlencode($v)."&";} $post_data=substr($o,0,-1); $ch=curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_URL,$config['sms']['send_url']); //为了支持cookie curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $state=curl_exec($ch); //echo ",".$state; $state=iconv($config['sms']['server_charset'],"utf-8",$state); $state=trim($state); //var_dump(strpos($state,$config['sms']['success_val'])); $send_state=match_result($config['sms']['success_val'],$state); if($send_state){ $sql="update ".$pdo->index_pre."phone_msg set `state`='2' where `id`='".$r['id']."'"; $pdo->exec($sql); return true; }else{ $sql="update ".$pdo->index_pre."phone_msg set `state`='3' where `id`='".$r['id']."'"; $pdo->exec($sql); return false; } } } }
相关文章推荐
- PHP发送短信 Monxin专用(PHP代码函数)
- 调用发送邮件 Monxin专用(PHP代码函数)
- 查询可用短信余额 Monxin专用(PHP代码函数)
- 发送邮件 Monxin专用(PHP代码函数)
- 获取邮件发件箱SMTP信息 Monxin专用(PHP代码函数)
- 记录用户的访问设备 Monxin专用(PHP代码函数)
- 更新用户充值状态 Monxin专用(PHP代码函数)
- 获取本批数据备份文件名 Monxin专用(PHP代码函数)
- 获取用户所在用户组名称 Monxin专用(PHP代码函数)
- 检测Monxin子程序升级包的完整性 Monxin专用(PHP代码函数)
- 获取monxin_table.css路径 Monxin专用(PHP代码函数)
- 记录出错SQL语句 Monxin专用(PHP代码函数)
- 获取模板所在目录 Monxin专用(PHP代码函数)
- 获取程序中文名 Monxin专用(PHP代码函数)
- 获取用户账户状态 Monxin专用(PHP代码函数)
- 获取用户ID Monxin专用(PHP代码函数)
- 操作用户余额 Monxin专用(PHP代码函数)
- 获取用户真实姓名 Monxin专用(PHP代码函数)
- 更新导航条静态数据 Monxin专用(PHP代码函数)
- 检测Monxin子程序安装包的完整性 Monxin专用(PHP代码函数)