php file函数

2011-7-7 杜世伟 Php

<?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);
                  }
              }
         }
?>

标签: file_size file_exists

Powered by emlog 沪ICP备2023034538号-1