常用功能函数

/*  function CopyDir()  复制目录方法(包含里面文件)
*        $dirsrc          原目录
*        $dirto           目标目录  *
*/

function CopyDir($dirsrc,$dirto){
    if(file_exists($dirto)){                               //判断目标目录是否存在或是否是文件
        if(!is_dir($dirto)){
            echo '该目标不是一个目录,不能拷贝文件进去';
            exit;
        }
    }else{
        mkdir($dirto);                                      //如果不存在就新建目录
    }

    $dir = opendir($dirsrc);                                //打开原目录

    while($filename = readdir($dir)){                       //从原目录中读取条数
        if($filename !="." && $filename !=".."){            //必须要去除掉 .和..,不然会报错,因为.和..并不是文件和目录。
            $scrfile =  $dirsrc."/".$filename;              //为什么要加上上级目录,如果不加,则在当前目录下并没有被打开的目录的文件。然后
            $tofile =  $dirto."/".$filename;                // copy($scrfile,$tofile)函数会报错,说没有找到该文件或目录;
            if(is_dir($scrfile)){
                CopyDir($scrfile,$tofile);                  //递归处理所有的目录
            }else{
            copy($scrfile,$tofile);                         //不是目录就拷贝
            }
        }
    }

}

CopyDir('phpMyAdmin','./copy');

//树结构(子分类)

$tmp = [];
$result = [];
foreach ($list as $rule){
    $tmp[$rule['id']] = [
        'id'=>$rule['id'],
        'name'=>$rule['name'],
        'departments'=>$rule['departments'],
        'pid'=>$rule['pid'],
        'child'=>[],
    ];
}
foreach ($tmp as $k => $rule){
    if ($rule['pid'] > 0){
        if (isset($tmp[$rule['pid']])) $tmp[$rule['pid']]['child'][] = &$tmp[$k];
    }else{
        $result[] = &$tmp[$k];
    }
}

//树结构(获取下级数据的ID,用于搜索)


$list = Product::query();

if($category_id){
    //$category = ProductCategory::query()->where('parent_id',0)->get(); 
    $category = ProductCategory::query()->where('id',$category_id)->get();
    $category = json_encode($this->categortTree($category));
    /*获取关联的分类ID*/
    preg_match_all('/"id.+?:([0-9]+)/',$category,$array);
    $list = $list->whereIn('category_id',$array[1]);
}

/*获取产品子级-递归方法*/
public function categortTree($category){
    /*声明数据*/
    $data = $category;

    /*遍历父级数据*/
    foreach($data as $k => $v){
        /*检索子级数据*/
        $category = ProductCategory::query()->where('parent_id','=',$v->id)->get();
        if($category){
            /*开始递归-为空不插入*/
            if(count($category)!=0)  $v->vice = $this->categortTree($category);
        }
    }
    return $data;
}

//页面检索

  $('#search').change(function(){
            //消除上一次匹配到所加的元素样式
            $("td[name='search_bs']").each(function () {  //循环需要搜索的数组
                var wb = $(this).text();
                $(this).html(wb);
            })
            var search_text =  $('#search').val();
            search_text = $.trim(search_text);
            if(search_text!=''){
                var regExp = new RegExp(search_text, 'g');  //返回正则表达式字符匹配模式形式
                $("td[name='search_bs']").each(function () {  //循环需要搜索的数组
                    var html = $(this).html();
                    var newHtml = html.replace(regExp, '<span class="highlight">' + search_text + '</span>'); //替换所匹配到的字符
                    $(this).html(newHtml);   //把旧文本改为被替换的
                    flag = 1;
                })


                if (flag){
                    if ($(".highlight").size() >= 1) {
                        var _top = $(".highlight").eq(0).offset().top; //获取该元素距顶部偏移值
                        $("body").animate({  //动画移动滚动条的位置
                            "scrollTop": _top-200  //移动滚动条的位置
                        }, 200)
                    }
                }
            }
        })

  

//PHP大文件下载(实时下载)

$file_dir = '文件路径'; 
if(file_exists($file_dir)){//检测文件是否存在

    $fp=fopen($file_dir,'r');//只读方式打开
    $filesize=filesize($file_dir);//文件大小
    /***********************header头不要设置错了哦****************************/
    //返回的文件(流形式)
    header("Content-type: application/octet-stream");        //按照字节大小返回
    header("Accept-Ranges: bytes");                          //返回文件大小
    header("Accept-Length: $filesize");                      //这里客户端的弹出对话框,对应的文件名
    header("Content-Disposition: attachment; filename=".basename($file_dir)); //用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。
    /*************************************************************************/

    /******************************重点要考************************************/
    //清空缓冲区
    ob_clean();
    //刷新缓冲区
    flush();
    //设置分流  分流是为了不让整个下载文件占用大量的php脚本内存,如果不分流,你的文件又3G 你的php脚本内存就要大于3G
    $buffer=1024;        //来个文件字节计数器
    while(!feof($fp)){
        $data=fread($fp,$buffer);
        echo $data;//传数据给浏览器端
    }
    fclose($fp);
    exit();

}else{
    echo '文件不存在';
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值