/** * @Author: Marte * @Date: 2017-12-19 13:31:56 * @Last Modified by: Marte * @Last Modified time: 2017-12-21 16:01:09 *//*********************用PHP追加数组,使用array_merge_recursive(),将两个数组合并在一起,注意,与array_merge()函数是不一样的,array_merge()的两个数组有重复项时会覆盖掉,而array_merge_recursive()则不会。array_merge_recursive()语法*/
array array_merge_recursive(array array1,array array2[…,array arrayN])// 下面是一个PHP追加数组的例子:$fruit1 = array("apple" => "red", "banana" => "yellow");$fruit2 = array("pear" => "yellow", "apple" => "green");$result = array_merge_recursive($fruit1, $fruit2);print_r($result);// 输出结果:// Array ( [apple] => Array ( [0] => red [1] => green ) [banana] => yellow [pear] => yellow )
/****************************************************PHP JSON_ENCODE 不转义中文汉字的方法**********************************************************************/// 原创 2014年07月25日 17:56:54 标签:PHP /JSON 47702// ios程序中不识别读取到的JSON数据中 \u开头的数据。// PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据。// 网上很多,但是其实都是错误的,正确的方法是在json_encode 中加入一个参数 JSON_UNESCAPED_UNICODEecho json_encode($result,JSON_UNESCAPED_UNICODE);
/*******************************thinkphp 自带分页**********************************/$perpage = 2;$Page = new \Think\Page($count,$perpage);// 实例化分页类传入总记录数和每页显示的记录数(2)$Page->setConfig('prev' , "上一页");$Page->setConfig('next' , "下一页");$Page->setConfig('first' , "首页");$Page->setConfig('last' , "尾页");$Page->lastSuffix = false;$Page->rollPage = 5;$show = $Page->show();// 分页显示输出// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
/*#################################################################计 算 年 龄*******###########################************************/ $this->getAge($now,$value['boday']);
public function getAge($now,$birthday) { $age = 0; $year = $month = $day = 0; if (is_array($birthday)) { extract($birthday); } else { if (strpos($birthday, '-') !== false) { list($year, $month, $day) = explode('-', $birthday); $day = substr($day, 0, 2); //get the first two chars in case of '2000-11-03 12:12:00' } } $age = date('Y') - $year; if (date('m') < $month || (date('m') == $month && date('d') < $day)) $age--; return $this->diffDate($now,$birthday,$age); } public function diffDate($date1,$date2,$sui){ $datestart= date('Y-m-d',strtotime($date1)); if(strtotime($datestart)>strtotime($date2)){ $tmp=$date2; $date2=$datestart; $datestart=$tmp; } list($Y1,$m1,$d1)=explode('-',$datestart); list($Y2,$m2,$d2)=explode('-',$date2); $Y=$Y2-$Y1; // 1 $m=$m2-$m1; // 0 $d=$d2-$d1; // -11 if($d<0){ $d+=(int)date('t',strtotime("-1 month $date2")); $m=$m--; } if($m<0){ $m+=12; $y=$y--; } if($sui == 0 && $m == 0 && $d != 0){ return $d.'天'; }elseif($sui == 0 && $m != 0 && $d != 0){ return $m.'个月零'.$d.'天'; }elseif($sui != 0 && $m == 0 && $d != 0){ return $sui.'岁零'.$d.'天'; }elseif($sui != 0 && $m < 10 && $m !=0 && $d != 0){ return $sui.'岁 零'.$m.'个月'.$d.'天'; }else{ return $sui.'岁'.$m.'个月'.$d.'天'; } }/*###################################################################遍历文件夹下的文件进行操作############################*/public function read_all($dir){ if(!is_dir($dir)) return false; $handle = opendir($dir); if($handle){ while(($fl = readdir($handle)) !== false){ $temp = iconv('GBK','utf-8',$dir.DIRECTORY_SEPARATOR.$fl);//转换成utf-8格式 //如果不加 $fl!='.' && $fl != '..' 则会造成把$dir的父级目录也读取出来 if(is_dir($temp) && $fl!='.' && $fl != '..'){ echo '目录:'.$temp.'<br>'; $this->read_all($temp); }else{ if($fl!='.' && $fl != '..'){ // echo '文件:'.$temp.'<br>'; $filesize =filesize($temp); if($filesize > 212339){ //D:\phpStudy\WWW\myshop\UpPhoto\20180123033716hgg7yl.png $name=explode('\\', $temp); $com = A("Common"); // var_dump($name);die; $com->image_png_size_add($temp,'C:\phpStudy\WWW\myshop\UpPhoto2\thum\\'.$name[6]); unlink("$temp"); } } } } }}/*##########################################################筛选出表记录的图片(正则匹配符合条件的两者之间的字符串)#########################################*/ //$pattern = '#http://120.25.221.30/myshop/Public/Image/(.*?)#i';如果不要结束符号,就仅仅是获取你你写出来的部分的字符串 // $pattern = '#http://120.25.221.30/myshop/Public/Image/(.*?)"#i'; //这是的正则指的是从 http://120.25.221.30/myshop/Public/Image/开始到 " 之间的所有字符串 // $items = preg_match_all($pattern, $data['json'], $matches); public function copy2(){ $json = M("Json"); $data = $json->field("json")->select(); foreach ($data as $key => $value) { $pattern = '#http://(.*?)"#i'; $items = preg_match_all($pattern, $value['json'], $matches); // var_dump($matches[1]);die; foreach ($matches[1] as $k => $v){ $va = explode('/',$v); $va = end($va); copy("./UpPhoto/".$va,"./UpPhoto/thumb/".$va); unlink("./UpPhoto/".$va); } } }/*#######################################################将表里面的base64图片换成URL地址的图片(正则匹配到相符条件的字符串将其替换)########################################################################*/ public function huan($id){ $json = M("Json"); $data = $json->where("id={$id}")->getField("json"); // var_dump($data); $pattern = '#data:image/(.*?)"#i'; $items = preg_match_all($pattern, $data, $matches); if($items >0){ $images =array(); foreach ($matches[0] as $key => $value) { $va = explode(',',$value); $img = base64_decode($va[1]); $index = A('Index'); $thumb = $index->rand3(5); $a = file_put_contents("./UpPhoto/".$thumb.".jpeg", $img);//返回的是字节数 $images[$key] = "http://www.qzriji.com/UpPhoto/".$thumb.".jpeg\""; } $shuju = str_replace($matches[0],$images,$data); $con = array('json'=>$shuju); $result = $json->where("id={$_POST['id']}")->save($con); } }
/*###########################################过滤敏感字##############################################*/public function legal($name){ $str = file_get_contents('./Public/key.txt'); $str = (trim($str)); $jin = explode('|', $str); $allergicWord = $jin; $str = $name; $str = strtr($str, array(' '=>'')); for ($i=0;$i<count($allergicWord);$i++){ $content = substr_count($str, $allergicWord[$i]); if($content>0){ $info = $content; break; } } if($info>0){ return 1; } }$this->legal($_POST['username']);if($pan >0 || strlen($_POST['username']) ==0){ $msg = array('cate'=>0,'msg'=>'非法昵称'); echo json_encode($msg); return;}public function seeing(){ $json = M("Json"); $result = $json->where()->find(); // var_dump($result);die; if($result['status'] =='0'){ $data =array('status'=>1); }elseif($result['status'] =='1'){ $data =array('status'=>0); } $result2 = $json->where("id={$_POST['id']}")->save($data); if($result2){ $info =array('cate'=>1); echo json_encode($info); }else{ $info =array('cate'=>0); echo json_encode($info); }}public function copy(){ $json = M("Json"); $data = $json->field("headpic,id")->select(); // var_dump($data);die; $thumbs = array(); foreach ($data as $key => $value) { // $pattern = '#http://120.25.221.30/myshop/UpPhoto/(.*?)#i'; // // var_dump($value);die; // $items = preg_match_all($pattern, $value['json'], $matches); // var_dump($matches);die; foreach ($matches[0] as $k => $v) { $thumbs[$k] = "http://www.qzriji.com/UpPhoto/"; } //替换多个字符串str_replace函数 数组只能是一维数组 $shuju = str_replace($matches[0],$thumbs,$value['json']); $con = array('json'=>$shuju); $result = $json->where("id={$value['id']}")->save($con); }}/*########################################去空格#########################################################*/$_POST['goods_name'] = preg_replace('# #','',$_POST['goods_name']);
/*##################################判断数字#############################*/if(preg_match("/^\d*$/",$_POST['goods_name'])){ echo('是数字'); }else{ echo('不是数字'); } /*######################################合并音频############################################################*/ public function tece(){ exec("C:/fft/bin/ffmpeg -f concat -i ./Wechat/weixinrecord/filelist.txt -c copy ./Wechat/weixinrecord/output.mp3"); echo 111; }具体参考 http://blog.csdn.net/xiaojun111111/article/details/52438230
public function upload2(){ // echo 11;die; $media = $_POST['media_id']; $med = explode(',',$media); foreach ($med as $key => $value) { $media_id = $value; $access_token = getAccessToken();
$path = "./Wechat/weixinrecord/"; //保存路径,相对当前文件的路径 $outPath = "./php/Wechat/weixinrecord/"; //输出路径,给show.php 文件用,上一级
if(!is_dir($path)){ mkdir($path); } //微 信上传下载媒体文件 $url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$access_token}&media_id={$media_id}"; $name = "wxupload_".time().rand(1111,9999); $filename = $name.".amr"; $this->downAndSaveFile($url,$path."/".$filename);
exec("C:/fft/bin/ffmpeg -i ./Wechat/weixinrecord/".$filename." ./Wechat/weixinrecord/".$name.".mp3"); $data["path"] = $outPath.$filename; $data["msg"] = "download record audio success!"; // $data["url"] = $url;
echo json_encode($data); }}
/*########################################################确认删除功能*##################################################################*/
<a title="删除" href="javascript:;" οnclick="product_del(this,'{$v.id}')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont"></i></a>
function product_del(obj,id) { var msg = "您真的确定要删除吗?\n\n请确认!"; if (confirm(msg)==true){ $.ajax({ type: 'POST', url:'http://www.qzriji.com/Admin/Bookdub/ajaxDel', data:{'id':id}, dataType: 'json', success: function(data){ if(data.cate =='0'){ alert(data.msg); } if(data.cate =='1'){ alert(data.msg); } window.location.reload(); }, error:function(data) { }, }); }else{ return false; } }
public function ajaxDel($id){ // var_dump($id);
$model = D('Bookdub'); $book = M('Bookdub'); $story = M('Story'); $audio = M('Bookaudio'); $pan = $audio->where("title_id={$id}")->select(); if($pan){ $info = array('cate'=>0,'msg'=>'有用户在使用这故事,不能删除'); echo json_encode($info); } // var_dump($pan); $au = $story->where("id={$id}")->find(); // var_dump($au); $img2=explode('/',$au['url']); $mus2 = end($img2); $result2 = unlink("./Public/Uploads/book/".$mus2); $data = $book->where("title_id={$id}")->select(); // var_dump($data);die; foreach ($data as $key => $value) { $img=explode('/',$value['thumb']); $mus = end($img); $result = unlink("./Public/Uploads/book/".$mus);
$aui=explode('/',$value['model']); $audi = end($aui); $res = unlink("./Public/Uploads/book/audio/".$audi); } $result = $book->where("title_id={$id}")->delete(); $result3 = $story->where("id={$id}")->delete(); $info = array('cate'=>1,'msg'=>'删除成功'); echo json_encode($info); }/*###################################################################跨模块#######################################*///User为控制器 number为方法R('User/number');R('Admin/User/number');R('shop://Admin/User/number');---------------------------------------------------------------------------------------------------------------------------------// 微信获取用户信息的两个接口和两个ACCESS_TOKEN// 有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太tm的稀烂的,太难懂了,这做个笔记以后看着方便// 微信有2个ACCESS_TOKEN,// 1,基础接口的token 获取接口是 // https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET// 2,用户网页授权access_token 获取接口地址是// https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code// 网页授权access_token 需要通过code去获取// code是怎么来的,是通过调用下面接口来获取的// https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
// 注意这个接口中有个参数scope 默认有2个值snsapi_base和snsapi_userinfo,这个接口会根据scope 来生成不同的code并且获取不同作用的access_token ,不管scope传什么值都能在得到对应access_token的同时得到open_id, 如果你只需要得到opend_id 那使用snsapi_base参数到此结束了,如果需要获取用户的其他信息比如 昵称 地址 就要snsapi_userinfo 会弹出授权
// 3 怎么获取用户信息那就调用下面接口
// https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN
// 很明显这个接口中的access_token是第二步获取code的时候scope 参数传snsapi_userinfo来换取的access_token
// 4 微信还有一个获取用户基本信息的接口 但是 这个接口需要你关注了公众号
// https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN (此接口的access_token 是接口基础调用access_token 不是网页授权access_token)
// 微信的解释:是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
/*############################################PHPphp保存微信用户头像到本地或者服务器的完美方案!#######################################################################*/https://blog.csdn.net/slyjit/article/details/78955884 //方法一://推荐用该方法 $header = array( 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0', 'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3', 'Accept-Encoding: gzip, deflate',); $url='http://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKkGpNuUhaBniatRsiaG7ksqmhUWzkk40kTRS6icQS7kJcsfxcibQo7vDFcKibr7NHb9YIXiaXsEtLcdL6A/0'; $curl = curl_init();curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);curl_setopt($curl, CURLOPT_ENCODING, 'gzip'); curl_setopt($curl, CURLOPT_HTTPHEADER, $header);$data = curl_exec($curl);$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);curl_close($curl); if ($code == 200) {//把URL格式的图片转成base64_encode格式的! $imgBase64Code = "data:image/jpeg;base64," . base64_encode($data); } $img_content=$imgBase64Code;//图片内容 //echo $img_content;exit; if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img_content, $result)) { $type = $result[2];//得到图片类型png?jpg?gif? $new_file = "./cs/cs.{$type}"; if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $img_content)))) { echo '新文件保存成功:', $new_file; }} //方法二://该方法比较消耗服务器资源,慎用! $url='http://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKkGpNuUhaBniatRsiaG7ksqmhUWzkk40kTRS6icQS7kJcsfxcibQo7vDFcKibr7NHb9YIXiaXsEtLcdL6A/0'; $img_file = file_get_contents($url); $img_content= base64_encode($img_file); $type = 'jpeg';//得到图片类型png?jpg?gif? $new_file = "./cs/cs.{$type}"; if (file_put_contents($new_file, base64_decode($img_content))) { echo 'ok', $new_file; }
转载于:https://www.cnblogs.com/lvtiansong/p/9490519.html
相关资源:各显卡算力对照表!