分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

php 操作Redis发送短信

发布时间:2023-09-06 01:28责任编辑:沈小雨关键词:暂无标签

循环查询redis队列里面的数据

然后提交数据后将反馈信息再写入另一个 redis list里面

代码

<?php ???/** ?* System Name: sent message ?* User: gyc ?* Date: 2017/11/30 14:40 ?*/ ?class Sentmsg ?{ ?????function sentaction($data_in = null) ?????{ ?????????$data_in=unserialize($data_in); ?????????if(empty($data_in[‘id‘])||empty($data_in[‘phone‘])||empty($data_in[‘content‘])) ?????????{ ?????????????return array(‘state‘=>false,‘message‘=>json_encode($data_in));exit; ?????????} ?????????$URL = "http://xxxxx/sms.aspx";//运营商接口地址 ????????$data = ?????????????[ ?????????????????‘account‘ => ‘账号‘, ?????????????????‘pwd‘ => ‘密码‘, ?????????????????‘userid‘ => ‘xxx‘, ?????????????????‘mobile‘ => $data_in[‘phone‘], ?????????????????‘content‘ => ?$data_in[‘content‘], ?????????????????‘sendTime‘ => null, ?????????????????‘action‘ => ‘send‘, ?????????????????‘extno‘ => null, ?????????????];//要发送的数据 ?????????$ch = curl_init(); ?????????//判断ssl连接方式 ?????????if (stripos($URL, ‘https://‘) !== false) { ?????????????curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); ?????????????curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); ?????????????curl_setopt($ch, CURLOPT_SSLVERSION, 1); ?????????} ?????????$connttime = 500; //连接等待时间500毫秒 ?????????$timeout = 15000;//超时时间15秒 ???????????$querystring = ""; ?????????if (is_array($data)) { ?????????????// Change data in to postable data ?????????????foreach ($data as $key => $val) { ?????????????????if (is_array($val)) { ?????????????????????foreach ($val as $val2) { ?????????????????????????$querystring .= urlencode($key) . ‘=‘ . urlencode($val2) . ‘&‘; ?????????????????????} ?????????????????} else { ?????????????????????$querystring .= urlencode($key) . ‘=‘ . urlencode($val) . ‘&‘; ?????????????????} ?????????????} ?????????????$querystring = substr($querystring, 0, -1); // Eliminate unnecessary & ?????????} else { ?????????????$querystring = $data; ?????????} ?????????curl_setopt($ch, CURLOPT_URL, $URL); ?????????curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//反馈信息 ?????????curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); //http 1.1版本 ?????????curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, $connttime);//连接等待时间 ?????????curl_setopt($ch, CURLOPT_TIMEOUT_MS, $timeout);//超时时间 ?????????curl_setopt($ch, CURLOPT_POST, true); ?????????curl_setopt($ch, CURLOPT_POSTFIELDS, $querystring); ?????????$file_contents = curl_exec($ch);//获得返回值 ?????????$status = curl_getinfo($ch); ?????????curl_close($ch); ???????????$call_back_json = json_encode(simplexml_load_string($file_contents, ‘SimpleXMLElement‘, LIBXML_NOCDATA)); ?????????$reslut = json_decode($call_back_json, true); ?????????$ststus = $reslut[‘returnstatus‘]; ???????????if ($ststus == ‘Success‘) { ?????????????return array(‘state‘=>true); ?????????} else { ?????????????return array(‘state‘=>false,‘message‘=>json_encode($reslut)); ?????????} ???????} ?} ???set_time_limit(0); ?header("Content-type: text/html; charset=utf-8"); ?$redis = new Redis(); ?$redis->pconnect(‘127.0.0.1‘, 6379) or die(‘errot‘); ?$sms = new Sentmsg(); ?while (true) { ?????$data = $redis->LPOP(‘Queue‘); ?????if (!empty($data)) { ???????????$res = $sms->sentaction($data); ?????????if($res[‘state‘]) ?????????{ ?????????????$data= unserialize($data); ?????????????$redis->LPUSH(‘Queue2‘, serialize(array(‘id‘=>$data[‘id‘],‘status‘=>‘success‘,‘time‘=>time()))); ???????????}else ?????????{ ?????????????$data= unserialize($data); ?????????????$redis->LPUSH(‘Queue2‘, serialize(array(‘id‘=>$data[‘id‘],‘status‘=>‘fail‘,‘time‘=>time(),‘msg‘=>$res[‘message‘]))); ?????????} ?????} ?????sleep(rand() % 3); ?} 

php 操作Redis发送短信

原文地址:http://www.cnblogs.com/guoyachao/p/7930738.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved