<?php
	/*
	 * Created on 2011-5-11
	 * author 孤独求学人
	 */
	/* $filename 要查看的文件名字
	  * 获取文件上次访问时间
	  */
	  function get_last_accesse_time($filename){
	    if(file_exists($filename)){
	        return  date ("Y-m-d H:i:s.", fileatime($filename));
	    }
	  }
	  /*
	   * $filename 要查看的文件名字
	   * filectime 取得文件的 inode 修改时间,注意:在大多数 Unix 文件系统中,当一个文件的 inode
	   * 数据被改变时则该文件被认为是修改了。也就是说,当文件的权限,所有者,所有组或其它
	   * inode 中的元数据被更新时
	   */
	   function file_ctime($filename){
	      if(file_exists($filename)){
	        return date ("Y-m-d H:i:s.", filectime($filename));
	    }
	   }
	   /*
	    * filemtime -- 取得文件修改时间
	    */
	    function file_mtime($filename){
	        if(file_exists($filename)){
	            return date("Y-m-d H:i:s",filemtime($filename));
	        }
	    }
	    /*
	     * fileowner -- 取得文件的所有者,返回文件所有的用户 ID,如果出错则返回 FALSE
	     */
	     function file_owner($filename){
	         if(file_exists($filename)){
	             return fileowner($filename);
	             clearstatcache();//清除缓存
	         }
	     }
	     /*
	      * fileperms -- 取得文件的权限
	      */
	      function file_perms($filename){
	          if(file_exists($filename)){
	              $perms =  fileperms($filename);
	          if (($perms & 0xC000) == 0xC000) {
	               // Socket
	                $info = 's';
	            } elseif (($perms & 0xA000) == 0xA000) {
	                // Symbolic Link
	                $info = 'l';
	            } elseif (($perms & 0x8000) == 0x8000) {
	                // Regular
	                $info = '-';
	            } elseif (($perms & 0x6000) == 0x6000) {
	                // Block special
	                $info = 'b';
	            } elseif (($perms & 0x4000) == 0x4000) {
	                // Directory
	                $info = 'd';
	            } elseif (($perms & 0x2000) == 0x2000) {
	                // Character special
	                $info = 'c';
	            } elseif (($perms & 0x1000) == 0x1000) {
	                // FIFO pipe
	                $info = 'p';
	            } else {
	                // Unknown
	                $info = 'u';
	            }
	         // Owner
	         $info .= (($perms & 0x0100) ? 'r' : '-');
	         $info .= (($perms & 0x0080) ? 'w' : '-');
	         $info .= (($perms & 0x0040) ?(($perms & 0x0800) ? 's' : 'x' ) :(($perms & 0x0800) ? 'S' : '-'));
	
	         // Group
	         $info .= (($perms & 0x0020) ? 'r' : '-');
	         $info .= (($perms & 0x0010) ? 'w' : '-');
	         $info .= (($perms & 0x0008) ?(($perms & 0x0400) ? 's' : 'x' ) :(($perms & 0x0400) ? 'S' : '-'));
	
	         // World
	         $info .= (($perms & 0x0004) ? 'r' : '-');
	         $info .= (($perms & 0x0002) ? 'w' : '-');
	         $info .= (($perms & 0x0001) ?(($perms & 0x0200) ? 't' : 'x' ) :(($perms & 0x0200) ? 'T' : '-'));
	          }
	          return $info;
	      }
	      /*
	       * filesize -- 取得文件大小
	       */
	      function file_size($filename){
	           if(file_exists($filename)){
	               return filesize($filename);
	           }
	      }
	      /*
	       * filetype -- 取得文件类型
	       */
	       function file_type($filename){
	             if(file_exists($filename)){
	               return filetype($filename);
	           }
	       }
	       /*
	        * $filename 将要读取文件
	        * $method   读取方式
	        * $length 读取的长度
	        */
	        function file_read($filename,$method,$length){
	            if(file_exists($filename)){
	                if(filesize($filename)){
	                $fp = fopen($filename,$method);
	                if($fp){
	                    if($length <= filesize($filename)){
	                        return $content = fread($fp,$length);
	                    }
	                }
	                fclose($fp);
	                }
	            }
	        }
	        /*
	         * $filename 要写入的文件
	         * $content 待写入的数据
	         */
	         function file_write($filename,$content){
	              if(file_exists($filename)){
	                  if(is_writable($filename)){//判断是否可写
	                      $fp = fopen($filename,'a');//打开文件
	                      if($fp){
	                          if(feof($fp)){//判断指针是否到达尾部
	                          $new_file = fwrite($fp,$content);//写入文件
	                          if(!$new_file){
	                           return false;
	                          }else{
	                             return true;
	                          }
	                          }
	                      }
	                      fclose($fp);
	                  }
	              }
	         }
	?>