学习和使用ci框架的过程中将一些用得比较多而框架未提供的方法封装成model,以便以后使用。
注意:ci框架里model本来应该是数据模型,将常用方法封装进其中并不太好。封装功能应该放进helper辅助函数和library库中。但目前自身水平有限,常用方法直接做成library还不够丰富和完善。所以放在model中。
目录
dir_copy($src = '', $dst = '', $only_file=true, $only_dir=true, $only_file_son=true)
ci中的model调用方法:
//import
$this->load->model('modelname','rename');
//use
$this->rename->methodname('arg');
在使用时按上述方式导入和使用,可以不提供rename,则调用时就使用你的modelname名称即可。这里的modelname就是模型对象名称,也是文件名。
model:ofile.php
该模型提供一些文件操作方法。文件夹复制、文件夹删除、字符串编码GBK、创建文件夹等功能。
method:convert_encoding($str)
方法介绍:接收一个字符串,转换它编码为GBK。主要针对操作文件时发生的文件名乱码和无法读取服务器上中文文件名的问题。原因是php默认内置的是UTF-8的字符编码。
参数:
str:string,必须
method:dir_copy($src = '', $dst = '', $only_file=true, $only_dir=true, $only_file_son=true)
方法介绍:实现文件目录复制功能。
参数
src:string,必须。要复制的目录路径;
dst:string,必须。要复制到目标路径,复制来的文件放在它下面。如果该路径不存在,则方法内部会尝试创建,如果出错则无法后续操作。
以上两个参数必须,且必须是可读取的路径,否则函数无法使用。
only_file:boolean,可选。默认true,是否复制src目录下的直接文件(第一层文件);
only_dir:boolean,可选。默认true,是否递归复制子目录。
only_file_son:boolean,可选。默认true,是否复制子目录下的直接文件(当only_dir为false,此项不生效。)。当此项为false,可以copy出整个目录结构而不copy文件,某些场景下可能有用。
该方法只是复制src路径下的文件或目录。当你想包含src最后一个目录(像平时直接选中文件夹就复制走这个文件夹及内部所有内容)时,可以在dst目标路径最后加上src最后这个目录的名称即可。如下:
//将123目录直接copy到ad目录下
$this->ofile->dir_copy('./files/123','./files/ad/123');