PHP 做群发短信(短信接口连接问题)

首先写个方法:

function sendSMS($http,$username,$password,$sendmobile,$send_content){
$httpurl = $http;
$data = array
(
'USERNAME'=>$username,//用户账号
'PASSWORD'=>$password,//用户密码
'MOBILE'=>$sendmobile,//号码
'CONTENT'=>mb_convert_encoding($send_content,'GB2312','UTF-8'), //内容
);
$re= $this->postSMS($httpurl,$data); //POST方式提交
if(trim($re)>0)
{
return "success";
}
else
{
return "error";
}
}
function postSMS($httpurl,$data=''){
$row = parse_url($httpurl);
$host = $row['host'];
$port = isset($row['port']) ? $row['port']:80;
$file = $row['path'];
$post = '';
while (list($k,$v) = each($data))
{
$post .= ($k)."=".($v)."&";
}
$post = substr($post,0 ,-1);
$len = strlen($post);

$fp = @fsockopen( $host ,$port, $errno, $errstr, 10);
if (!$fp) {
return "$errstr ($errno)\n";
}else {
$receive = '';
$out = "POST $file HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n";
$out .= "Content-Length: $len\r\n\r\n";
$out .= $post;
fwrite($fp, $out);
while (!feof($fp)) {
$receive .= fgets($fp,128);
}
fclose($fp);
$receive = explode("\r\n\r\n",$receive);
unset($receive[0]);
return implode("",$receive);
}
}

PHP处理页面

$sendmobile = isset($_POST['mobile']) ? trim($_POST['mobile']) : '';
$hm_arr = explode(',', $sendmobile);
$sendtime = isset($time) ? strtotime($time) : $systime;
$sendcontent = isset($_POST['contentname']) ? trim($_POST['contentname']) : '';
$sendstatus = 1;
$sendsign = isset($_POST['sendsign']) ? trim($_POST['sendsign']) : '';
$send_content = $sendcontent.' --'.$sendsign;
$httpurl = $sms_config['httpurl'];
$username = $sms_config['username'];
$password = $sms_config['password'];
$balance_info = $balance->GetBlanceInfo($uid);
$balance_sy = $balance_info['balance_info']-$balance_info['rate'];
$rate = $balance_info['rate'];
if($balance_sy > $rate){
$hp = $balance->sendSMS($httpurl,$username,$password,$sendmobile,preg_replace('/\s+/','%20',$send_content));
if($hp == 'success'){
$sql_c = "update {$tablepre}sms_info set balance_info = '$balance_sy',amount = amount+'1' where userid = '$uid'";
$rs = $db->query($sql_c);
$sql_s = "update {$tablepre}company set corpname = '$sendsign' where userid = '$uid'";
$rs_s = $db->query($sql_s);
$sql = "insert into {$tablepre}sms_log (sendmobile,userid,sendtime,sendcontent,sendtype,sendstatus,sendmoney) values ('$sendmobile','$uid','$sendtime','$sendcontent','$sendtype','$sendstatus','$rate')";
$rs = $db->query($sql);
header("location:index.php?c=sigle_send_mess&s=1");
}else{
header("location:index.php?c=sigle_send_mess&s=2");
}
}else{
header("location:index.php?c=sigle_send_mess&s=3");
}

你可能感兴趣的:(PHP 做群发短信(短信接口连接问题))