乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      PHP常用類庫:PHP文件系統(tǒng)操作類SimFile.class.php

       Alkaid2015 2013-11-03
      PHP常用類庫:PHP文件系統(tǒng)操作類SimFile.class.php

      PHP文件系統(tǒng)操作類,封裝了PHP中FileSystem中的常用函數(shù),并做了一些優(yōu)化。

      主要功能:

      每個功能對應一個方法,主要方法如下:

      1.

      * 把文件讀入數(shù)組(一行為一個元素)
      * 1.去掉每行末的換行符。
      * 2.可以設置是否過濾空行

      2.

      * 讀取文件為字符串

      3.

      * 將字符串寫入文件

      4.

      * 讀取數(shù)組文件,返回一個數(shù)組

      5.

      * 將一個數(shù)組寫入文件

      6.

      * 創(chuàng)建目錄
      * 1.遞歸創(chuàng)建多級目錄
      * 2.同時創(chuàng)建多個目錄

      7.

      * 刪除目錄和文件
      * 1.可以刪除文件和目錄
      * 2.判斷目錄和文件是否存在,存在進行刪除。
      * 3.遞歸刪除目錄及止內所有文件和文件夾。

      8.

      * 遞歸列出目錄下的所有子目錄和文件

      9.

      * 遞歸列出目錄下的所有子目錄

      10.

      * 遞歸列出目錄下的所有文件

      11.

      * 遞歸列出目錄下的所有子目錄和文件
      * 返回以子目錄為鍵,子目錄下所有文件的數(shù)組為值的數(shù)組

      12.

      * 獲取文件夾大小

      13.

      * 自動轉換文件大小值為合適的單位(四舍五入)


      完整源碼:

      <?php
      /**
       * Sim, Simple library simplify our PHP development.
       * 使用簡單、簡潔的類庫,簡化我們的PHP開發(fā)。
       *
       * @author 雨中歌者 http://weibo.com/esinger (新浪微博)
       * @link /link.php?url=http://blog.csdn.net/esinger (技術博客)
       * @license http://www./licenses/LICENSE-2.0
       */
      
      /**
       * 文件系統(tǒng)操作類
       *
       * @author 雨中歌者
       * @version 1.0
       */
      class SimFile {
      	/**
      	 * 構造函數(shù)
      	 * 防止實例化
      	 */
      	public function __construct() {
      		return;
      	}
      	
      	/**
      	 * 把文件讀入數(shù)組(一行為一個元素)
      	 * 1.去掉每行末的換行符。
      	 * 2.可以設置是否過濾空行。
      	 *
      	 * @access public
      	 * @param string $filename
      	 * @param boolean $skip_empty_lines 是否過濾空行
      	 * @return array
      	 */
      	public static function file($filename, $skip_empty_lines = false) {
      		if ($skip_empty_lines) {
      			return file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
      		} else {
      			return file($filename, FILE_IGNORE_NEW_LINES);
      		}
      	}
      	
      	/**
      	 * 讀取文件為字符串
      	 *
      	 * @access public
      	 * @param string $filename
      	 * @return boolean string
      	 */
      	public static function read($filename) {
      		return is_file($filename) ? file_get_contents($filename) : false;
      	}
      	
      	/**
      	 * 將字符串寫入文件
      	 *
      	 * @access public
      	 * @param string $filename
      	 * @param string $data
      	 * @return number
      	 */
      	public static function write($filename, $data) {
      		$dirname = dirname($filename);
      		self::mkdir($dirname);
      		return file_put_contents($filename, $data);
      	}
      	
      	/**
      	 * 讀取文件為一個數(shù)組
      	 *
      	 * @access public
      	 * @param string $filename
      	 * @return array 文件不存在或讀取失敗,返回空數(shù)組
      	 */
      	public static function readArray($filename) {
      		$data = is_file($filename) ? file_get_contents($filename) : false;
      		$data = unserialize($data);
      		return is_array($data) ? $data : array();
      	}
      	
      	/**
      	 * 將一個數(shù)組寫入文件
      	 *
      	 * @access public
      	 * @param string $filename
      	 * @param array $array
      	 * @return array 返回寫入的數(shù)組
      	 */
      	public static function writeArray($filename, $array) {
      		self::write($filename, serialize($array));
      		return $array;
      	}
      	
      	/**
      	 * 創(chuàng)建目錄
      	 * 1.遞歸創(chuàng)建多級目錄
      	 * 2.同時創(chuàng)建多個目錄
      	 *
      	 * @param string|array $dirname
      	 * @param number $mode
      	 * @param boolean $recursive
      	 */
      	public static function mkdir($dirname, $mode = 0777, $recursive = true) {
      		if (is_string($dirname) || is_numeric($dirname)) {
      			if (!is_dir($dirname)) {
      				return mkdir($dirname, $mode, $recursive);
      			}
      		} elseif (is_array($dirname)) {
      			foreach ($dirname as $dir) {
      				is_dir($dir) or mkdir($dir, $mode, $recursive);
      			}
      		}
      		return false;
      	}
      	
      	/**
      	 * 刪除目錄和文件
      	 * 1.可以刪除文件和目錄
      	 * 2.判斷目錄和文件是否存在,存在進行刪除。
      	 * 3.遞歸刪除目錄及止內所有文件和文件夾
      	 *
      	 * @access public
      	 * @param string $filename
      	 */
      	public static function delete($filename) {
      		$filename = rtrim($filename, '/\\');
      		if (is_dir($filename)) {
      			if (($dh = @opendir($filename)) !== false) {
      				while (false !== ($file = readdir($dh))) {
      					if ($file != "." && $file != "..") {
      						$path = $filename . '/' . $file;
      						is_dir($path) ? self::delete($path) : @unlink($path);
      					}
      				}
      				closedir($dh);
      			}
      			rmdir($filename);
      		} else {
      			unlink($filename);
      		}
      	}
      	
      	/**
      	 * 遞歸列出目錄下的所有子目錄和文件
      	 *
      	 * @access public
      	 * @param string $dirname
      	 * @return array 成功返回包含所有子目錄和文件的一維數(shù)組。失敗返回空數(shù)組。
      	 */
      	public static function getSub($dirname) {
      		$dirname = rtrim($dirname, '/\\');
      		$ret = array();
      		if (is_dir($dirname)) {
      			if (($dh = @opendir($dirname)) !== false) {
      				while (($file = readdir($dh)) !== false) {
      					if ($file != '.' && $file != '..') {
      						$path = $dirname . DIRECTORY_SEPARATOR . $file;
      						$ret[] = $path;
      						is_dir($path) && $ret = array_merge($ret, self::getSub($path));
      					}
      				}
      				closedir($dh);
      			}
      		}
      		return $ret;
      	}
      	
      	/**
      	 * 遞歸列出目錄下的所有子目錄
      	 *
      	 * @access public
      	 * @param string $dirname
      	 * @return array 成功返回包含所有子目錄的一維數(shù)組。失敗返回空數(shù)組。
      	 */
      	public static function getSubDir($dirname) {
      		$dirname = rtrim($dirname, '/\\');
      		$ret = array();
      		if (is_dir($dirname)) {
      			if (($dh = @opendir($dirname)) !== false) {
      				while (($file = readdir($dh)) !== false) {
      					if ($file != '.' && $file != '..') {
      						$path = $dirname . DIRECTORY_SEPARATOR . $file;
      						if (is_dir($path)) {
      							$ret[] = $path;
      							$ret = array_merge($ret, self::getSubDir($path));
      						}
      					}
      				}
      				closedir($dh);
      			}
      		}
      		return $ret;
      	}
      	
      	/**
      	 * 遞歸列出目錄下的所有文件
      	 *
      	 * @access public
      	 * @param string $dirname
      	 * @return array 成功返回包含所有文件的一維數(shù)組。失敗返回空數(shù)組。
      	 */
      	public static function getSubFile($dirname) {
      		$dirname = rtrim($dirname, '/\\');
      		$ret = array();
      		if (is_dir($dirname)) {
      			if (($dh = @opendir($dirname)) !== false) {
      				while (($file = readdir($dh)) !== false) {
      					if ($file != '.' && $file != '..') {
      						$path = $dirname . DIRECTORY_SEPARATOR . $file;
      						if (is_dir($path)) {
      							$ret = array_merge($ret, self::getSubFile($path));
      						} else {
      							$ret[] = $path;
      						}
      					}
      				}
      				closedir($dh);
      			}
      		}
      		return $ret;
      	}
      	
      	/**
      	 * 遞歸列出目錄下的所有子目錄和文件
      	 *
      	 * @access public
      	 * @param string $dirname
      	 * @return array 成功返回以子目錄為鍵,子目錄下所有文件的數(shù)組為值的數(shù)組,失敗返回空數(shù)組。
      	 */
      	public static function getSubAsKV($dirname) {
      		$dirname = rtrim($dirname, '/\\');
      		$ret = array();
      		if (is_dir($dirname)) {
      			if (($dh = @opendir($dirname)) !== false) {
      				while (false !== ($file = readdir($dh))) {
      					if ($file != "." && $file != "..") {
      						$path = $dirname . DIRECTORY_SEPARATOR . $file;
      						is_dir($path) ? $ret[$path] = self::getSub($path) : $ret[] = $path;
      					}
      				}
      				closedir($dh);
      			}
      		}
      		return $ret;
      	}
      	
      	/**
      	 * 獲取文件夾大小
      	 *
      	 * @access public
      	 * @param string $dirname
      	 * @return number 返回文件夾大?。▎挝粸樽止?jié))。
      	 */
      	public static function getDirSize($dirname) {
      		$dirname = rtrim($dirname, '/\\');
      		$size = 0;
      		if (is_dir($dirname)) {
      			if (($dh = @opendir($dirname)) !== false) {
      				while (($file = readdir($dh)) !== false) {
      					if ($file != '.' && $file != '..') {
      						$file = $dirname . DIRECTORY_SEPARATOR . $file;
      						$size += is_dir($file) ? self::getDirSize($file) : filesize($file);
      					}
      				}
      				closedir($dh);
      			}
      		}
      		return $size;
      	}
      	
      	/**
      	 * 獲取自動轉換單位的文件大小值(四舍五入)
      	 *
      	 * @access public
      	 * @param float $byte
      	 * @param integer $precision 精度
      	 * @return string
      	 */
      	public static function getAutoSize($byte, $precision = 2) {
      		$kb = 1024;
      		$mb = $kb * 1024;
      		$gb = $mb * 1024;
      		$tb = $gb * 1024;
      		if ($byte < $kb) {
      			return $byte . ' B';
      		} elseif ($byte < $mb) {
      			return round($byte / $kb, $precision) . ' KB';
      		} elseif ($byte < $gb) {
      			return round($byte / $mb, $precision) . ' MB';
      		} elseif ($byte < $tb) {
      			return round($byte / $gb, $precision) . ' GB';
      		} else {
      			return round($byte / $tb, $precision) . ' TB';
      		}
      	}
      }
       
       // End of file SimFile.class.php


      作者:esinger 發(fā)表于2013-4-25 11:17:45 原文鏈接

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多