⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 files.php

📁 国外很不错的一个开源OA系统Group-Office
💻 PHP
字号:
<?php/** * File Utilities. * @author $Author: mschering $ * @version $Id: Files.php,v 1.1 2006/03/23 10:01:31 mschering Exp $ * @package ImageManager */define('FILE_ERROR_NO_SOURCE', 100);define('FILE_ERROR_COPY_FAILED', 101);define('FILE_ERROR_DST_DIR_FAILED', 102);define('FILE_COPY_OK', 103);/** * File Utilities * @author $Author: mschering $ * @version $Id: Files.php,v 1.1 2006/03/23 10:01:31 mschering Exp $ * @package ImageManager * @subpackage files */class Files {		/**	 * Copy a file from source to destination. If unique == true, then if	 * the destination exists, it will be renamed by appending an increamenting 	 * counting number.	 * @param string $source where the file is from, full path to the files required	 * @param string $destination_file name of the new file, just the filename	 * @param string $destination_dir where the files, just the destination dir,	 * e.g., /www/html/gallery/	 * @param boolean $unique create unique destination file if true.	 * @return string the new copied filename, else error if anything goes bad.	 */	function copyFile($source, $destination_dir, $destination_file, $unique=true) 	{		if(!(file_exists($source) && is_file($source))) 			return FILE_ERROR_NO_SOURCE;		$destination_dir = Files::fixPath($destination_dir);		if(!is_dir($destination_dir)) 			Return FILE_ERROR_DST_DIR_FAILED;		$filename = Files::escape($destination_file);		if($unique) 		{			$dotIndex = strrpos($destination_file, '.');			$ext = '';			if(is_int($dotIndex)) 			{				$ext = substr($destination_file, $dotIndex);				$base = substr($destination_file, 0, $dotIndex);			}			$counter = 0;			while(is_file($destination_dir.$filename)) 			{				$counter++;				$filename = $base.'_'.$counter.$ext;			}		}		if (!copy($source, $destination_dir.$filename))			return FILE_ERROR_COPY_FAILED;				//verify that it copied, new file must exists		if (is_file($destination_dir.$filename))			Return $filename;		else			return FILE_ERROR_COPY_FAILED;	}	/**	 * Create a new folder.	 * @param string $newFolder specifiy the full path of the new folder.	 * @return boolean true if the new folder is created, false otherwise.	 */	function createFolder($newFolder) 	{		mkdir ($newFolder, 0777);		return chmod($newFolder, 0777);	}	/**	 * Escape the filenames, any non-word characters will be	 * replaced by an underscore.	 * @param string $filename the orginal filename	 * @return string the escaped safe filename	 */	function escape($filename) 	{		Return preg_replace('/[^\w\._]/', '_', $filename);	}	/**	 * Delete a file.	 * @param string $file file to be deleted	 * @return boolean true if deleted, false otherwise.	 */	function delFile($file) 	{		if(is_file($file)) 			Return unlink($file);		else			Return false;	}	/**	 * Delete folder(s), can delete recursively.	 * @param string $folder the folder to be deleted.	 * @param boolean $recursive if true, all files and sub-directories	 * are delete. If false, tries to delete the folder, can throw	 * error if the directory is not empty.	 * @return boolean true if deleted.	 */	function delFolder($folder, $recursive=false) 	{		$deleted = true;		if($recursive) 		{			$d = dir($folder);			while (false !== ($entry = $d->read())) 			{				if ($entry != '.' && $entry != '..')				{					$obj = Files::fixPath($folder).$entry;					//var_dump($obj);					if (is_file($obj))					{						$deleted &= Files::delFile($obj);										}					else if(is_dir($obj))					{						$deleted &= Files::delFolder($obj, $recursive);					}									}			}			$d->close();		}		//$folder= $folder.'/thumbs';		//var_dump($folder);		if(is_dir($folder)) 			$deleted &= rmdir($folder);		else			$deleted &= false;		Return $deleted;	}	/**	 * Append a / to the path if required.	 * @param string $path the path	 * @return string path with trailing /	 */	function fixPath($path) 	{		//append a slash to the path if it doesn't exists.		if(!(substr($path,-1) == '/'))			$path .= '/';		Return $path;	}	/**	 * Concat two paths together. Basically $pathA+$pathB	 * @param string $pathA path one	 * @param string $pathB path two	 * @return string a trailing slash combinded path.	 */	function makePath($pathA, $pathB) 	{		$pathA = Files::fixPath($pathA);		if(substr($pathB,0,1)=='/')			$pathB = substr($pathB,1);		Return Files::fixPath($pathA.$pathB);	}	/**	 * Similar to makePath, but the second parameter	 * is not only a path, it may contain say a file ending.	 * @param string $pathA the leading path	 * @param string $pathB the ending path with file	 * @return string combined file path.	 */	function makeFile($pathA, $pathB) 	{				$pathA = Files::fixPath($pathA);		if(substr($pathB,0,1)=='/')			$pathB = substr($pathB,1);				Return $pathA.$pathB;	}		/**	 * Format the file size, limits to Mb.	 * @param int $size the raw filesize	 * @return string formated file size.	 */	function formatSize($size) 	{		if($size < 1024) 			return $size.' bytes';			else if($size >= 1024 && $size < 1024*1024) 			return sprintf('%01.2f',$size/1024.0).' Kb';			else			return sprintf('%01.2f',$size/(1024.0*1024)).' Mb';		}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -