仿寫elFinder的,抽出關(guān)鍵的成員方法做的一個(gè)簡(jiǎn)單示例
實(shí)現(xiàn)功能是:
實(shí)現(xiàn)多文件復(fù)制或移動(dòng)操作
注:為了方便測(cè)試,對(duì)一些判斷做了簡(jiǎn)單處理。并且會(huì)在程序文件所在目錄下
????? 新生成一個(gè)test文件夾作為目的文件夾。如果實(shí)際使用需要修改。
?<?php /** * 復(fù)制/移動(dòng)操作簡(jiǎn)單示例 : >PHP5 * */ /** * 判斷文件是否存在 * */ function _isFind($filename) { return @file_exists($filename); } /** * 判斷文件夾是否存在? 簡(jiǎn)單處理: 僅對(duì)根目錄進(jìn)行判斷 * */ function _isFindDir($dir) { $ls = scandir(dirname(__FILE__)); foreach ($ls as $val) { if ($val == $dir) return TRUE; } return FALSE; } /** * 復(fù)制或移動(dòng) * * @param array 源文件夾數(shù)組: 簡(jiǎn)單處理:采用文件名作為元素值 * @param string 目的文件夾 * @param string 操作數(shù): move - 移動(dòng) ; copy - 復(fù)制 * @return bool */ function _copy_move($src = array(), $dst = '', $op = 'move') { if ( ! is_array($src)) { $src = array($src); } //判斷源文件是否存在? foreach ($src as $val) { if ( _isFind($val) === FALSE) { return _log('Src file not find', $val); } } //判斷目的文件夾是否存在? 如果不存在就生成 //簡(jiǎn)單處理: 實(shí)際應(yīng)用需要修改 if (_isFindDir($dst) === FALSE) { @mkdir($dst); } //執(zhí)行移動(dòng)或復(fù)制操作 foreach ($src as $val) { $_dst = $dst.'/'.basename($val); //判斷目的文件是否存在? 存在不允許進(jìn)行操作 if (_isFind($_dst) === TRUE) { return _log('Dst file is exists', $dst); } else if (strpos($dst, $val) === 0) { return _log('Unable to copy/move into itself'); } if (strtolower($op) === 'move') { if ( ! rename($val, $_dst)) { return _log('Unable to move files', $val); } } else if (strtolower($op) === 'copy') { if ( ! _copy($val, $_dst)) { return _log('Unable to copy files', $val); } } } return 'Success!'; } /** * 復(fù)制操作 * */ function _copy($src, $dst) { if ( ! is_dir($src)) { if ( ! copy($src, $dst)) { return _log('Unable to copy files', $src); } } else { mkdir($dst); $ls = scandir($src); for ($i = 0; $i < count($ls); $i++) { if ($ls[$i] == '.' OR $ls[$i] == '..') continue; $_src = $src.'/'.$ls[$i]; $_dst = $dst.'/'.$ls[$i]; if ( is_dir($_src)) { if ( ! _copy($_src, $_dst)) { return _log('Unable to copy files', $_src); } } else { if ( ! copy($_src, $_dst)) { return _log('Unable to copy files', $_src); } } } } return TRUE; } /** * 日志記錄 * */ function _log($msg, $arg = '') { if ($arg != '') { $msg = "date[".date('Y-m-d H:i:s')."]\tmsg[".$msg."]\targ[".$arg."]\n"; } else { $msg = "date[".date('Y-m-d H:i:s')."]\tmsg[".$msg."]\n"; } echo $msg; return @file_put_contents('copy.log', $msg, FILE_APPEND); } /** * 示例 * 1. 需要修改$src的數(shù)組參數(shù) ; 2. 可以修改_copy_move的第三個(gè)參數(shù)以分別測(cè)試move/copy操作 * */ $src = array('img', 'min', 'phpinfo.php'); $dst = 'test'; var_dump(_copy_move($src, $dst, 'copy')); /*end of php*/
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud
Guide de construction de Grass Wonder | Uma musume joli derby
1 Il y a quelques mois
By Jack chen
<??>: 99 nuits dans la forêt - tous les badges et comment les déverrouiller
1 Il y a quelques mois
By DDD
Guide de température de Rimworld Odyssey pour les navires et Gravtech
3 Il y a quelques semaines
By Jack chen
Guide de construction Mejiro Ryan | Uma musume joli derby
4 Il y a quelques semaines
By Jack chen
Rimworld Odyssey Comment pêcher
3 Il y a quelques semaines
By Jack chen

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)