zoukankan      html  css  js  c++  java
  • 杂记


    /**
    * @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_UNICODE
    echo 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:;" onclick="product_del(this,'{$v.id}')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe6e2;</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;
    }

  • 相关阅读:
    送给每天用电脑超4小时的朋友!!
    股票技术指标分析详细
    2003安装新版MSN9的方法 / MSN9 for 2003
    买卖股票基本原则新手参考
    更改Windows软件默认安装路径
    永不套牢的方法(教你正确止损)
    股票的技术参数很多,图线参数常见的有这些
    教育网ftp大全
    【笔记】【汇编语言】第4章 第一个程序
    【笔记】【汇编语言】第2章 寄存器
  • 原文地址:https://www.cnblogs.com/lvtiansong/p/9490519.html
Copyright © 2011-2022 走看看