PHP导入excel发送网易云信短信
前端HTML代码:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"/> 5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> 6 <title>发送模版短信</title> 7 <bootstrapcss/> 8 <webuploadercss/> 9 <icheckcss/> 10 </head> 11 <body> 12 <div class="bjy-admin-nav"> 13 <i class="fa fa-home"></i> 首页 > 短信发送 > 发送模版短信 14 </div> 15 <ul id="myTab" class="nav nav-tabs"> 16 <li class="active"> 17 <a href="#">发送模版短信</a> 18 </li> 19 20 </ul> 21 <form action="" method="post"> 22 <table class="table table-striped table-bordered table-hover table-condensed"> 23 24 <tr> 25 <th width="15%">上传导入号码</th> 26 <td> 27 <div style="width: 50%;float: left"> 28 <textarea class="form-control" id="scan" cols="60" rows="10" readonly></textarea> 29 <div id="uploader" class="wu-example"> 30 <!--用来存放文件信息--> 31 <div id="thelist" name="fileName" class="uploader-list"> 32 </div> 33 <div class="btns"> 34 <div id="picker">选择文件</div> 35 </div> 36 </div> 37 </div> 38 </td> 39 </tr> 40 <tr> 41 <th>模版内容</th> 42 <td> 43 <textarea class="form-control" rows="5" cols="40" id="text" name="content" readonly>{$templateInfo['content']}</textarea> 44 </td> 45 </tr> 46 <tr> 47 <th>注意事项</th> 48 <td> 49 云信短信计费包括短信签名,70字计1条短信费,超过70字则以67字每条计费,当短信中出现中文字符,则单个汉字、英文、标点和空格等都算一个字。<br> 50 创建说明:<br> 51 52 1、网易云信提供的模板短信由固定内容与多个变量构成,其中 " %s " 为需要接口替换的变量,变量内容可以是汉字、字母、数字或者特殊字符组合,但单个变量内容长度不得超过30个字,一条模板短信中变量数量不限制,短信模板总字数限制300字内;<br> 53 54 2、"【云短信】"为云信系统默认提供的短信模板签名,在设置短信模板内容中不需要再填写短信签名。 55 </td> 56 </tr> 57 <input class="form-control" type="hidden" name="templateId" value="{$templateInfo['templateId']}"> 58 <input class="form-control" type="hidden" name="title" value="{$templateInfo['title']}"> 59 <input type="hidden" name="fileurl" value="" id="fileurl"> 60 <tr> 61 <th></th> 62 <td> 63 <input class="btn btn-success" type="submit" value="发送"> 64 </td> 65 </tr> 66 </table> 67 68 <!--<webuploader name="image" url="{:U('Home/Index/ajax_upload')}" word="或将照片拖到这里,单次最多可选300张"/>--> 69 </form> 70 <bootstrapjs/> 71 <webuploaderjs/> 72 <script type="text/javascript" > 73 /* 文件上传 */ 74 var $list = $("#thelist"); 75 var l = new Array(); 76 var uploader = WebUploader.create({ 77 // 选完文件后,是否自动上传。 78 auto : true, 79 // 文件接收服务端。 80 server : '{:U("Home/Index/ajax_upload_excel")}', 81 // 选择文件的按钮。可选。 82 // 内部根据当前运行是创建,可能是input元素,也可能是flash. 83 pick : '#picker', 84 // 不压缩, 默认如果是jpeg,文件上传前会压缩一把再上传! 85 resize : false, 86 // 指定上传的模块 87 formData : { 88 "model" : "counsel" 89 } 90 }); 91 92 // 当有文件被添加进队列的时候 93 uploader.on('fileQueued', function(file) { 94 $list.append('<div id="' + file.id + '" class="item">' 95 + '<h4 class="info">' + file.name + '</h4>' 96 + '<p class="state">等待上传...</p>' + '</div>'); 97 }); 98 99 //response是可以接收从后台传回的数据 100 uploader.on('uploadSuccess', function(file, response) { 101 var fileurl=response.name; 102 console.log(response.receive); 103 var json = response; 104 json = eval(json.receive) 105 var ele = document.getElementById("scan"); 106 document.getElementById("scan").value=""; 107 document.getElementById("fileurl").value=''; 108 document.getElementById("fileurl").value=fileurl; 109 for(var i=0; i<json.length; i++) 110 { 111 var rec=json[i].join(","); 112 ele.value = ele.value +rec+"\r\n"; 113 } 114 $('#' + file.id).find('p.state').text('已上传'); 115 116 }); 117 118 uploader.on('uploadError', function(file) { 119 $('#' + file.id).find('p.state').text('上传出错'); 120 }); 121 122 123 uploader.on('uploadComplete', function(file) { 124 $('#' + file.id).find('.progress').fadeOut(); 125 }); 126 127 128 </script> 129 <icheckjs color="blue"/> 130 </body> 131 </html>
后端代码:
1 /** 2 * 发送短信 3 */ 4 public function sendtemplatesms(){ 5 if(IS_POST){ 6 7 //返回成功信息 8 $fileurl=I('post.fileurl'); 9 10 $result=import_excel('.'.$fileurl); 11 foreach ($result as $k=>$v){ 12 $msg['time']=time(); 13 $msg['admin']=$_SESSION['user']['username']; 14 $msg['templateId']=I('post.templateId'); 15 $msg['receiver']=$v['0']; 16 //组合参数 17 $par=$v; 18 array_shift($par). "\n"; 19 $params=$par; 20 $resultmsg=yx_sendsms($msg['templateId'],$mobile=array($v['0']),$params); //发送短信 21 22 $msg['status']=$resultmsg['code']; 23 $msg['sendId']=$resultmsg['obj']; 24 $content = I('post.content'); 25 $arr = $par; 26 // 分开 27 $s = explode('%s', $content); 28 $c = count($s); 29 // 组合(提交的参数代替s%) 30 $content = ''; 31 for ($i = 0; $i < $c; ++$i) 32 { 33 $content .= $s[$i].(isset($arr[$i])?$arr[$i]:''); 34 } 35 $msg['content']=$content; 36 M('msgrecord')->add($msg); //发送记录存入数据库 37 } 38 $this->success('发送完成',U('Admin/Sendsms/msgrecord')); 39 }else{ 40 $id=I('get.id'); 41 if($id){ 42 $templateInfo=M('msgtemplate')->where(array('id'=>$id))->find(); 43 }else{ 44 $this->error('参数错误'); 45 } 46 $this->assign('templateInfo',$templateInfo); 47 $this->display(); 48 } 49 }
excel:
第一列是手机号,后面几列对应的是参数
大家有问题可以随时留言