您的位置:首页 > 编程语言 > PHP开发

调用发送短信 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;
}

}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: