全国咨询热线:18720358503

文档系统软件操作过程类如何应用?php文档系统

类别:媒体报道 发布时间:2021-03-16 浏览人次:

文档系统软件操作过程类如何应用?php文档系统软件操作过程类简易演试 時间:         访问频次: 在php汉语件系统软件操作过程类如何应用?实际如何实际操作?接下去,云服务器网编就带大伙儿一起來看一下,php文档系统软件操作过程类简易演试 有关內容,有必须的朋友赶紧回来一起看一下吧 ?php er
在php汉语件系统软件操作过程类如何应用?实际如何实际操作?接下去,云服务器网编就带大伙儿一起來看一下,php文档系统软件操作过程类简易演试 有关內容,有必须的朋友赶紧回来一起看一下吧   ?php   error_reporting(2047);     /*   * Class IO (SNakeVil 进行 03.25.04) (v1.0.0.0)   *   * [表明]   * 本类用以对文档系统软件的解决。   *   * [作用]   * **** list_dir($dir_path);   * 载入特定文件目录內容,回到內容数字能量数组。   * $dir_path 标识符串,特定文件目录相对路径   * 若有不正确回到 FALSE,不然回到   * array(   * count = array( files , dirs , size ),   * list = array(   * array( name , locate , type , size , ess , last_change , last_modify ),   * ......   * )   * )   * ********   * ********   * **** seek_file($pattern, $dir_path, $seek_type, $sub_dir, $interal, $limit);   * 依据正则表达式表述式标准,在相对文件目录及给定层级的根目录中检索配对的文档、文件目录。   * $pattern 合乎 PERL 适配规范的正则表达式表述式,不必加上 //,系统软件自主加上   * $seek_type 有 -1 0 1 三种将会值,0 仅文档夹,1 仅文档,-1 二者都包含   * $sub_dir 数据值,检索的根目录深层,特定文件目录算不上,提议不必超出 5   * $interal 布尔运算值,为真则回到检索結果的详尽信息内容,不然只回到文档名、种类及所属文件目录   * $limit 数据值,检索結果限定,防止过多消耗系统软件資源   * 若有不正确回到 FALSE,不然回到   * array(   * array(   * name , locate , type   * [, size , ess , last_change , last_modify ]   * ),   * ......   * )   * ********   * ********   * **** delete($path);   * 删掉特定目标,文档或文档夹 包含含有根目录和文档的非空文档夹。   * $path 标识符串,特定要删掉的內容相对路径,文档或文件目录都可   * 若有不正确在不正确处终断,回到 FALSE,不然回到 TRUE   * ********   * ********   * **** make_dir($path);   * 创建随意文档夹,相对性或肯定相对路径皆可,深层次创建也可以。   * $path 标识符串,要创建的最后文件目录相对路径   * 若有不正确回到 FALSE,不然回到 TRUE   * ********   * ********   * **** verify_file($src, $dst, $interal);   * 应用 MD5 优化算法较为2个文档是不是同样。   * $src 标识符串,源代码相对路径   * $dst 标识符串,总体目标文档相对路径   * $interal 布尔运算值,针对超过 1M 文档,能够设定为 FALSE 以省掉 MD5 检测流程,缓解网络服务器压力   * 若有不正确回到 FALSE,不然回到 TRUE   * ********   * ********   * **** copy($src_path, $dst_path);   * 对随意文档夹、文档开展拷贝,相对性或肯定相对路径皆可,文档拷贝进行之后开展效验,查验是不是错误数据信息不正确。   * $src_path 标识符串,特定要拷贝的源內容相对路径,文档或文件目录都可   * $dst_path 标识符串,特定要拷贝的总体目标內容相对路径,文档或文件目录都可,特性由 $src_path 决策,能为 $src_path 下一层文件目录   * 若有不正确回到 FALSE,不然回到 TRUE   * ********   * ********   * **** move($src_path, $dst_path);   * 对随意文档夹、文档开展移动,相对性或肯定相对路径皆可,文档移动进行之后开展效验,查验是不是错误数据信息不正确。   * $src_path 标识符串,特定要移动的源內容相对路径,文档或文件目录都可   * $dst_path 标识符串,特定要移动的总体目标內容相对路径,文档或文件目录都可,特性由 $src_path 决策,能为 $src_path 下一层文件目录   * 若有不正确回到 FALSE,不然回到 TRUE   *   * [著作权]   * 风吹雨打明清([email protected], [email protected])单独设计方案进行,保存一切权利。   * 随便应用,但请勿必保存下边的文字,感谢!   *   * ===========Z=================   * Class.IO.v1.0.0.0.build040325   * for.PHP.v4.20+   * by SNakeVil   * ([email protected], [email protected])   * --------+------   *   * MSN:[email protected]   * HP: a href= target= _blank /a   * ===========Z=================   *   */     class IO {   var $error_id;   var $result;   var $error_related;   var $last_exist_dir;     function IO() {   $this- result = array();   $this- error_id = 0x0000;   $this- error_related =   $this- last_exist_dir =   return $this;   }     ur($error_id=0xffff,$error_related= ) { // ----0xffff---- 产生不正确,但不正确缘故不明   if (is_int($error_id)) $this- error_id = $error_id; // 获得不正确号   $this- error_related = $error_related;   return false; // 不正确产生时回到 FALSE 便捷进一步解决   }     function list_dir($dir_path= . ) {   if (!is_dir($dir_path)) return $this- ur(0x0001, $dir_path); // ----0x0001---- 特定文件目录不会有   if ([email protected]($dir_path)) return $this- ur(0x0002, $dir_path); // ----0x0002---- 特定文件目录没有权利载入   $result = array(   count = array( files = 0, dirs = 0, size = 0),   list = array()   );   while (false!==($file_handle=readdir($dir_handle))) { // 应用 !== 避免解决名字为 0 或 FALSE 的文档、文件目录   if ($file_handle== . ||$file_handle== .. ) continue; // 忽视系统软件特殊的2个文档夹   $temp = str_replace( \ , / , realpath($dir_path));   $temp = substr($temp, -1)== / ? $temp : $temp. /   $temp = array($temp, $file_handle);   $file_handle = $temp[0].$temp[1]; // 获得肯定详细地址   $temp = array(   name = $temp[1],   locate = $temp[0],   type = @filetype($file_handle),   size = filesize($file_handle),   ess = fileatime($file_handle),   last_modify = filemtime($file_handle),   last_change = filectime($file_handle)   );   switch ($temp[ type ]) {   case file :   $temp[ type ] = 1;   $result[ count ][ files ]++;   $result[ count ][ size ] += $temp[ size   break;   case dir :   $temp[ type ] = 0;   $result[ count ][ dirs ]++;   break;   default: // !!!! 由于 Win32 服务平台,对既非文档也非文件目录的內容忽视   $temp[ type ] = -1;   }   $result[ list ][] = $temp;   }   closedir($dir_handle);   unset($dir_handle, $file_handle, $temp);   clearstatcache(); // 消除文档系统软件缓存文件   return $this- result = $result;   }     function seek_file($pattern= .* ,$dir_path= . ,$seek_type=1,$sub_dir=0,$interal=false,$limit=100) {   /* 标准一切将会的主要参数值 */   $pattern = / .$pattern. /   $seek_type = intval($seek_type);   $seek_type = $seek_type 0 ? 1 : ($seek_type 0 ? -1 : 0);   $sub_dir = al($sub_dir));   $interal = (bool)$interal;   $limit = al($limit));   if ($limit==0) $limit = 100;   $sub_dir_list = array(array($dir_path)); // 将查寻文件目录做为根目录层级的第一层来看待   $result = array();   /* i 当今解决的根目录层级,0 为特定文件目录层,即仅解决一个文件目录 */   for ($i=0;$i =$sub_dir;$i++) {   if (!isset($sub_dir_list[$i])) return $this- result = $result; // 假如某一层根目录沒有设定,表明具体文件目录系统软件中再无文件目录,回到   /* k 每一根目录层级中根目录统计分析,j 当今解决编号 */   for ($j=0,$k=count($sub_dir_list[$i]);$j $j++) { // 依据每一层根目录总数解决   $l = $this- list_dir($sub_dir_list[$i][$j]);   if (!$l) return $this- result = $result; // 出現不正确,则马上终止回到目前結果   $l = $l[ list   /* n 每一根目录汉语件、文件目录、别的新项目统计分析,m 为当今解决编号 */   for ($m=0,$n=count($l);$m $m++) {   if (count($result) =$limit) return $this- result = $result; // 假如规定数量已做到,回到   if ($l[$m][ type ]==0) $sub_dir_list[$i+1][] = $l[$m][ locate ].$l[$m][ name // 收集下一层根目录信息内容   $o = $l[$m][ type   if ($o!=$seek_type ($seek_type==1||$seek_type==0)) continue; // 忽视不符合合规定的新项目   elseif ($o==-1 $seek_type==-1) continue;   if (!preg_match($pattern, $l[$m][ name ])) continue; // 忽视不符合合正则表达式表述式的新项目   $result[] = $interal ? $l[$m] : array( name = $l[$m][ name ], locate = $l[$m][ locate ], type = $l[$m][ type ]);   }   }   }   unset($i, $j, $k, $l, $m, $n, $o, $sub_dir_list);   return $this- result = $result;   }     function delete($path= ) {   if (!file_exists($path)) return $this- ur(0x0003, $path); // ----0x0003---- 特定目标不会有   if (is_dir($path)) {   $path = str_replace( , / , realpath($path));   $path = substr($path, -1)== / ? $path : $path. /   $sub_list = array(array($path));   for ($i=0;$i count($sub_list);$i++) { // 应用 COUNT($SUB_LIST) 动态性分辨长短,进而有将会无定长循环系统   if (!isset($sub_list[$i])) break; // 探寻到最终点,得到该文件目录下全部根目录目录,便捷文档删掉后删掉文件目录   for ($j=0,$k=count($sub_list[$i]);$j $j++) {   $l = $this- list_dir($sub_list[$i][$j]);   if (!$l) return $this- ur( , $sub_list[$i][$j]);   $l = $l[ list   for ($m=0,$n=count($l);$m $m++) {   $o = $l[$m][ locate ].$l[$m][ name   if ($l[$m][ type ]==0) $sub_list[$i+1][] = $o;   elseif ([email protected]($o)) return $this- ur(0x0004, $o); // 删掉文件目录下的每个文档   }   }   }   for($i=count($sub_list)-1;$i $i--) // 逆回删掉文件目录   for ($j=0,$k=count($sub_list[$i]);$j $j++) // 删掉每个根目录直至特定文件目录   if ([email protected]($sub_list[$i][$j])) return $this- ur(0x0005, $sub_list[$i][$j]); // ----0x0005---- 文件目录没有权利删掉   unset($i, $j, $k, $l, $m, $n, $o, $sub_list);   return true;   } elseif (@unlink($path)) return true;   else return $this- ur(0x0004, $path); // ----0x0004---- 文档没有权利删掉   }     function generate_realpath($path= ) {   if ($path== ||!is_string($path)) return $this- ur(0x0007, $path); // ----0x0007---- 相对路径主要参数不正确   $path = preg_replace( /(? !^w)[:*? |]/ , , str_replace( \ , / , $path)); // 标准相对路径中有将会性的标记   if (substr($path,1,1)== : ) return $path; // !!!! Win32 服务平台的肯定相对路径   elseif (substr($path,0,1)== / ) return substr(realpath( . ), 0, 2).$path; // !!!! Win32 服务平台下的肯定相对路径变换   else {   if (substr($path,-1)== / ) $path = substr($path,0,-1); // 消除末尾将会的 / 标记   $path = preg_replace( //{2,}/ , / , $path); // 将 /// 例如相近的相接标记简单化为一个   $path = explode( / , $path); // 切分相对路径   $cur_path = explode( / , str_replace( \ , / , realpath( . )));   for ($i=0,$j=count($path);$i $i++) {   if ($path[$i]== .. ) array_pop($cur_path);   elseif ($path[$i]== . ||$path[$i]==str_repeat( . , strlen($path[$i]))) continue; // 忽视无用的相对性相对路径详细地址 . 和 .... 等   else array_push($cur_path, $path[$i]);   }   $path = implode( / , $cur_path);   unset($cur_path);   return $path;   }   }     function make_dir($path= ) {   if (!$path=$this- generate_realpath($path)) return false;   $path = explode( / , $path);   $i = array($path[0]);   for ($i=0,$j=count($path),$k=array(),$l= $i $i++) {   array_push($k, $path[$i]);   $l = implode( / , $k);   if (!file_exists($l)) {   if ($this- last_exist_dir== ) $this- last_exist_dir = $l;   if ([email protected]($l)) return $this- ur(0x0008, $l); // ----0x0008---- 没法建立文件目录   }   }   return true;   }     function verify_file($src= ,$dst= ,$interal=true) {   if (!file_exists($src)||!is_file($src)) return $this- ur(0x000A, $src); // ----0x000A---- 特定目标非文档   if (!file_exists($dst)||!is_file($dst)) return $this- ur(0x000A, $dst);   $i = filesize($src);   if ($i!=filesize($dst)) {   unset($i);   return false;   }   if ($i 1024*1024*1024 !$interal) { // 针对超过 1MB 的文档,假如不必求精准查验,绕过   unset($i);   return true;   }   unset($i);   if (md5_file($src)!=md5_file($dst)) return false;   return true;   }     function copy($src_path= ,$dst_path= ) {   if (!file_exists($src_path)) return $this- ur(0x0003, $src_path);   if (!$dst_path=$this- generate_realpath($dst_path)) return false;   if (is_dir($src_path)) {   $this- last_exist_dir = // 纪录现行标准具体存有的文件目录   if (!$this- make_dir($dst_path)) return false; // 创建文件目录不成功   $src_path = str_replace( , / , realpath($src_path));   $src_path = substr($src_path, -1)== / ? $src_path : $src_path. /   $sub_list = array(array($src_path));   for ($i=0;$i count($sub_list);$i++) {   if (!isset($sub_list[$i])) break;   for ($j=0,$k=count($sub_list[$i]);$j $j++) {   $l = $this- list_dir($sub_list[$i][$j]);   if (!$l) return $this- ur(0x0003, $sub_list[$i][$j]);   $l = $l[ list   for ($m=0,$n=count($l);$m $m++) {   $o = $l[$m][ locate ].$l[$m][ name   if ($o==$this- last_exist_dir) continue; // 假如为上级领导文件目录往下级文件目录拷贝,避免死循环系统   $p = str_replace(substr($src_path, 0, -1), $dst_path, $o);   if ($l[$m][ type ]==0) {   $sub_list[$i+1][] = $o;   if (!$this- make_dir($p)) return false; // 对每个根目录都给予创建   } else { // 对每个文档开展拷贝   if ($this- verify_file($o, $p)) continue; // 假如总体目标与源彻底同样,已不拷贝   if (!copy($o,$p)||!$this- verify_file($o,$p)) return $this- ur(0x0009, $o); // ----0x0009---- 文档移动不成功   }   }   }   }   unset($i, $j, $k, $l, $m, $n, $o, $p, $sub_list);   return true;   } else {   if (!is_readable($src_path)) return $this- ur(0x0006, $src_path); // ----0x0006---- 源代码没有权利载入   if ($this- verify_file($src_path,$dst_path)) return true;   $i = strrpos($dst_path, /   $dst_path = array(substr($dst_path, 0, $i), substr($dst_path, $i+1));   unset($i);   if (!$this- make_dir($dst_path[0])) return false;   $dst_path = implode( / , $dst_path);   if (!copy($src_path,$dst_path)||!$this- verify_file($src_path,$dst_path)) return $this- ur(0x0009, $src_path);   return true;   }   }     function move($src_path= ,$dst_path= ) {   if (!file_exists($src_path)) return $this- ur(0x0003, $src_path);   if (!$dst_path=$this- generate_realpath($dst_path)) return false;   if (is_dir($src_path)) {   $this- last_exist_dir =   if (!$this- make_dir($dst_path)) return false;   $src_path = str_replace( , / , realpath($src_path));   $src_path = substr($src_path, -1)== / ? $src_path : $src_path. /   $sub_list = array(array($src_path));   for ($i=0;$i count($sub_list);$i++) {   if (!isset($sub_list[$i])) break;   for ($j=0,$k=count($sub_list[$i]);$j $j++) {   $l = $this- list_dir($sub_list[$i][$j]);   if (!$l) return $this- ur(0x0003, $sub_list[$i][$j]);   $l = $l[ list   for ($m=0,$n=count($l);$m $m++) {   $o = $l[$m][ locate ].$l[$m][ name   if ($o==$this- last_exist_dir) continue;   $p = str_replace(substr($src_path, 0, -1), $dst_path, $o);   if ($l[$m][ type ]==0) {   $sub_list[$i+1][] = $o;   if (!$this- make_dir($p)) return false;   } else {   if ($this- verify_file($o, $p)) continue;   if (!copy($o,$p)||!$this- verify_file($o,$p)) return $this- ur(0x0009, $o);   if ([email protected]($o)) return $this- ur(0x0004, $o);   }   }   }   }   for($i=count($sub_list)-1;$i $i--)   for ($j=0,$k=count($sub_list[$i]);$j $j++)   if (strpos($this- last_exist_dir,$sub_list[$i][$j])!==false) continue; // 对移动总体目标文件目录的顶层文件目录,未予考虑到删掉   elseif ([email protected]($sub_list[$i][$j])) return $this- ur(0x0005, $sub_list[$i][$j]);   unset($i, $j, $k, $l, $m, $n, $o, $p, $sub_list);   return true;   } else {   if (!is_readable($src_path)) return $this- ur(0x0006, $src_path);   if ($this- verify_file($src_path,$dst_path)) return true;   $i = strrpos($dst_path, /   $dst_path = array(substr($dst_path, 0, $i), substr($dst_path, $i+1));   unset($i);   if (!$this- make_dir($dst_path[0])) return false;   $dst_path = implode( / , $dst_path);   if (!copy($src_path,$dst_path)||!$this- verify_file($src_path,$dst_path)) return $this- ur(0x0009, $src_path);   if (@unlink($src_path)) return true;   else return $this- ur(0x0004, $src_path);   }   }   }  

推荐阅读

文档系统软件操作过程类如何应用?php文档系统

文档系统软件操作过程类如何应用?php文档系统软件操作过程类简易演试時间:         访问频次:在php汉语件系统软件操作过程类如何应用?实际如何实际操作?接下去,云服务器网...

2021-03-16
一半以上数公司在其互联网遭受毁坏后未更改其

一半以上数公司在其互联网遭受毁坏后未更改其安全性对策時间:         访问频次:与很多公司在互联网安全性现行政策不充足的状况一样,一项新的调查結果说明,一部分地域乃至...

2021-03-15
《互联网安全性法》技术专业讲解接地装置气版

2017年十一月七日在我国第一部互联网安全性法施行。小编做为安全性制造行业的从事工作人员,用心阅读文章了有关条款。整体觉得: 安全性法不仅对各种各样互联网个人行为,确立...

2021-03-15
ASP.NET Razor 标识

什么叫 Razor?Razor 是一种标识英语的语法,可让您将根据网络服务器的编码(Visual Basic 和 C#)置入到网页页面中。根据网络服务器的编码能够在网页页面传输给访问器时,建立动态性...

2021-03-15
【文章投稿】有关倾丞和海鸥中间的误解(早已调

引言: 事儿刚开始于6月16日黄昏,一名本人blog时尚博主的沟通交流群(倾丞blog) 有一名叫海鸥的客户发过一张他的易付款截屏而且立即与间接性表明了自身近期的水流状况,我因为对...

2021-03-15
设计方案方式

设计方案方式(Design pattern)意味着了最好的实践活动,一般被有工作经验的朝向目标的手机软件开发设计工作人员所选用。设计方案方式是手机软件开发设计工作人员在手机软件开发设...

2021-03-15
X

400-8700-61718720358503
企业邮箱2639601583@qq.com
官方微信