ホームページ  >  記事  >  バックエンド開発  >  PHP ファイル ディレクトリの一般的な操作_PHP チュートリアル

PHP ファイル ディレクトリの一般的な操作_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:10:18936ブラウズ

/**

* 转化 は /
*
* @param string $path 路径
* @return string 径路
*/
function dir_path($path) {
$path = str_replace('', '/', $path);
if(substr($path, -1) != '/') $path = $path.'/';
return $path;
}
/**
* ディレクトリを作成します
*
* @param string $path path
* @param string $modeattribute
* @return string すでに存在する場合は true を返し、それ以外の場合は false を返します
*/
function dir_create($path, $ mode = 0777) {
if(is_dir($path)) return TRUE;
$ftp_enable = 0;
$path = dir_path($path);
$temp =explode('/', $path);
$cur_dir = '';
$max = count($temp) - 1;
for($i=0; $i<$max; $i++) {
$cur_dir .= $temp[$i].'/';
if (@is_dir($cur_dir)) continue;
@mkdir($cur_dir, 0777,true);
@chmod($cur_dir, 0777);
}
return is_dir($path);
}
/**
* 以下のディレクトリとすべてのファイルをコピーします
*
* @param string $fromdir 元のパス
* @param string $todir ターゲット パス
* @return string ターゲット パスが存在しない場合は false を返し、そうでない場合は true を返します
*/
function dir_copy($fromdir, $todir) {
$fromdir = dir_path($fromdir);
$todir = dir_path($todir);
if (!is_dir($fromdir)) return FALSE;
if (!is_dir($todir)) dir_create($todir);
$list = glob($fromdir.'*');
if (!empty($list)) {
foreach($list as $v) {
$path = $todir.basename($v);
if(is_dir($v)) {
dir_copy($v, $path);
} else {
copy($v, $path);
@chmod ($path, 0777);
}
}
}
return TRUE;
}
/**
* ディレクトリ配下のすべてのファイルエンコーディング形式を変換します
*
* @param string $in_charset 元の文字セット
* @param string $out_charset ターゲット文字セット
* @param string $dir ディレクトリアドレス
* @param string $fileexts 変換されたファイルformat
* @return string 元の文字セットとターゲットの文字セットが同じ場合は false を返し、それ以外の場合は true を返します
*/
function dir_iconv($in_charset, $out_charset, $dir, $fileexts = 'php|html|htm |shtml|shtm|js|txt|xml') {
if($in_charset == $out_charset) return false;
$list = dir_list($dir);
foreach($list as $v) {
if (preg_match ("/.($fileexts)/i", $v) && is_file($v)){
file_put_contents($v, iconv($in_charset, $out_charset, file_get_contents($v)));
}
}
return true;
}
/**
* ディレクトリ内の全ファイルを一覧表示
*
* @param string $path パス
* @param string $exts 拡張子
* @param array $list 追加されたファイルリスト
* @return array 条件を満たすすべてのファイル
*/
function dir_list($path, $exts = '', $list= array()) {
$path = dir_path($path);
$files = glob ($path.'*');
foreach($files as $v) {
$fileext = fileext($v);
if (!$exts || preg_match("/.($exts)/i", $v)) {
$list[] = $v;
if (is_dir($v)) {
$list = dir_list($v, $exts, $ list);
}
}
}
return $list;
}
/**
* ディレクトリ配下の全ファイルのアクセス時刻と変更時刻を設定します
*
* @param string $path パス
* @param int $mtime 変更時刻
* @param int $atime アクセス時刻
* @return array アクセス時刻を返しますディレクトリではない場合 false、それ以外の場合は true を返します
*/
function dir_touch($path, $mtime = TIME, $atime = TIME) {
if (!is_dir($ path)) return false;
$path = dir_path($path);
if (!is_dir($path)) touch($path, $mtime, $atime);
$files = glob($path.'*' );
foreach($files as $v) {
is_dir($v) ? dir_touch($v, $mtime, $atime) : touch($v, $mtime, $atime);
}
return true;
}
/**
* ディレクトリリスト
*
* @param string $dir パス
* @param int $parentid 親 ID
* @param array $dirs 受信ディレクトリ
* @return array 戻りディレクトリリスト
*/
function dir_tree($dir, $parentid = 0, $dirs = array()) {
global $id;
if ($parentid == 0) $id = 0;
$list = glob($dir.'*');
 foreach($list as $v) {
if (is_dir($v)) {
$id++;
$dirs[$id] = array('id'=>$id,'parentid'=>$parentid , 'name'=>basename($v), 'dir'=>$v.'/');
$dirs = dir_tree($v.'/', $id, $dirs);
}
}
return $dirs;
}

/**
* ディレクトリとそのディレクトリ下のすべてのファイルを削除します
*
* @param string $dir path
* @return bool 成功した場合は TRUE、失敗した場合は FALSE を返します
*/
function dir_delete($dir) {
$dir = dir_path($dir);
if (!is_dir($dir)) return FALSE;
$list = glob($dir.'*');
foreach($list as $v) {
is_dir($v) ? dir_delete($v) : @unlink($v);
}
return @rmdir($dir);
}

?>


www.bkjia.com本当http://www.bkjia.com/PHPjc/444746.html技術記事 ?php教程 /*** / * * @paramstring$path パス * @returnstring パスに変換します*/ function dir_path($path) { $path = str_replace('', '/', $path); if(substr($path, -1) != '/') $pat...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。