PHP - 目录、文件操作
目录操作:
<?php /** * Read Directory. * Just read the top-level directory. * @param string $path directory * Eg:readDirectory( 'file/' ); * @return array directory array */ function readDirectory( $path ) { //open directory handle. $dirHanlde = opendir( $path ); //Loop through directory. while ( ( $item = readdir( $dirHanlde ) ) !== FALSE ) { $p = $path . '/' . $item; if ( $item == '.' || $item == '..' ) continue; if ( is_file( $p ) ) $arr['file'][] = $item; if ( is_dir( $p ) ) $arr['dir'][] = $item; } //close directory handle. closedir( $dirHanlde ); //return result. return $arr; } /** * calculate directory size. * @param string directory size. * @return $num */ function dirSize( $path ) { static $num; $openHandle = opendir( $path ); while ( ( $item = readdir( $openHandle ) ) !== FALSE ) { $p = $path . '/' . $item; if ( $item == '.' || $item == '..' ) continue; if ( is_file( $p ) ) $num += filesize( $p ); if ( is_dir( $p ) ) dirSize( $p ); } closedir( $openHandle ); return $num; } /** * copy directory * Eg: * - copyDir( 'file/', 'abc/file' ); * - copyDir( 'file/a', 'abc/def/a' ); * @return [type] [description] */ function copyDir( $src, $dst ) { if ( ! file_exists( $dst ) ) mkdir( $dst, 0777, true ); $openHandle = opendir( $src ); while ( ( $item = readdir( $openHandle ) ) !== FALSE ) { $srcpath = $src . '/' . $item; $dstpath = $dst . '/' . $item; if ( $item == '.' || $item == '..' ) continue; if ( is_file( $srcpath ) ) copy( $srcpath, $dstpath ); if ( is_dir( $srcpath ) ) copyDir( $srcpath, $dstpath ); } closedir( $openHandle ); return true; }
文件操作:
<?php /** * Conversion Bytes. * Eg:transBytes( 500000 ); * @param int $size Bytes. * @return float return value. */ function transBytes( $size ) { $byteUnits = 0; $arr = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB'); while ( $size >= 1024 ) { $size /= 1024; $byteUnits++; } return round( $size, 2 ) . $arr[ $byteUnits ]; } /** * create file. include path. * Eg:createFile( 'file/abc.txt' ); * @param string $filename filename(include path.). * @return string result message. */ function createFile( $filename ) { //check file. if ( checkFile( $filename ) ) { //create file. if ( @touch( $filename ) ) { return 'Success!'; } else { return 'Failed to create file.'; } } else { return 'check file faild!'; } } /** * rename file. * Eg:renameFile( 'file/lllllssss.txt', 'file/abc.txt' ); * @param string $oldname old file name. * @param string $newname new file name. * @return result. */ function renameFile( $oldname, $newname ) { //check file. if ( checkFile( $newname ) ) { //create file. if ( @rename( $oldname, $newname ) ) { return 'Success!'; } else { return 'Failed to rename file.'; } } else { return 'check file faild!'; } } /** * delete file. * Eg:delFile( 'file/lllll.html' ); * @param string file path. * @return return message. */ function delFile( $name ) { ( @unlink( $name ) ) ? $resultMsg = 'Delete Success!' : $resultMsg = 'Delete Faild!'; return $resultMsg; } /** * download file. * Eg:downFile( 'file/abc.html' ); * @param string filename * @return download file name */ function downFile( $filename ) { header( 'Content-Disposition:attachment;filename=' . basename( $filename ) ); header( 'Content-length:' . filesize( $filename ) ); readfile( $filename ); } /** * check file. * Eg:checkFile( $name ); * include: * - Function checkFileName() * - Function checkFileExists() * @param string $name file name. * @return bool */ function checkFile( $name ) { //verify the file name. if ( checkFileName( $name ) ) { //To determine whether the file already exists if ( checkFileExists( $name ) ) { return true; } else { return false; } } else { return false; } } /** * check file name. * Eg:checkFileName( 'abc.txt' ); * @param string $name file name. * @return bool success return true,faild return false. */ function checkFileName( $name ) { //Regular Expressions. //very that the file name is valid. $pattern = "/[\/,\*,<>,\?\|]/"; //verify the file name. //return return @preg_match( $pattern, basename( $name ) ); } /** * check file exists. * inlcude path. * Eg:checkFileExists( 'nnn.txt' ); * @param string $name file name. * @return bool success return true,faild return false. */ function checkFileExists( $name ) { return @file_exists( $name ); }
公共操作:
<?php /** * Dispaly information and jump pages. * @param string $msg display information. * @param string $path jump path. * @return This function has no return value. */ function alertMsg( $msg, $path ) { echo "<script type='text/javascript'>alert('" . $msg . "');location.href = '" . $path . "';</script>"; }
posted on 2016-04-15 16:15 ultrastrong 阅读(221) 评论(0) 编辑 收藏 举报