PHP文件操作類(含獲取文件內容及屬性,更改文件,文件超出一定大小時刪除)

webphp 12年前發布 | 4K 次閱讀
<?php
class fileinfo
{
 public $file;
 function __construct($f)
 {
  $this->file = $f;
 }
 function createfile()
 {
  touch($this->file) or die("Couldn't create $this->file,sorry!");
 }
 function modifilefile()
 {
  $fo = fopen($file,"w") or die("Couldn't open $this->file,sorry!");
  if($fo)
  {
   fwrite($fo,"It's just a test by Adam Li on ".date("D d M Y H:i:s",time())) or die("$this->file isn't writable,sorry!");
   fclose($fo);
  }
 }
 function getfileinfo()
 {
  if(file_exists($this->file))
  {
   //文件大于1024字節時刪除并重新創建空文件:
   if(filesize($this->file)>1024)
   {
    echo "<script>alert('File is more than 1024 bytes and will be deleted soon···')</script>";
    if(unlink($this->file))
    {
     echo "<script>alert('File has been deleted and system will create a same file but empty soon···')</script>";
     touch($this->file) or die("Couldn't create ".$this->file);
    }

   }
   //獲取文件里的內容,避免再寫入時被覆蓋:
   $con = file_get_contents($this->file);
   $fo = fopen($this->file,"w") or die("Couldn't open $this->file,sorry!");
   if($fo)
   {
    //連同文件之前的內容一起寫入:
    fwrite($fo,$con."<br>It's just a test by Adam Li on ".date("D d M Y H:i:s",time())) or die("$file isn't writable,sorry!");
    fclose($fo);
   }
  }
  else//如果文件不存在,直接創建,寫入內容:
  {
   $this->createfile();
   $this->modifilefile();
  }
  //以下是獲取文件屬性:
  //獲取文件大小:
  echo "<p>文件".$this->file."大小為:<font color=red>".filesize($this->file)." bytes;</font></p>";
  //檢查是否是文件:
  echo "<p>$this->file is ".(is_file($this->file)?"":"not ")."a file</p>";
  //檢查是否是目錄:
  echo "<p>$this->file is ".(is_dir($this->file)?"":"not ")."a directory</p>";
  //檢查文件是否可讀:
  echo "<p>$this->file is ".(is_readable($this->file)?"":"not ")."readable</p>";
  //檢查文件是否可寫:
  echo "<p>$this->file is ".(is_writable($this->file)?"":"not ")."writable</p>";
  //檢查文件是否可執行:
  echo "<p>$this->file is ".(is_executable($this->file)?"":"not ")."executable</p>";
  //取得文件的上次訪問時間
  echo "<p>$this->file was accessed on ".date("D d M Y H:i:s",fileatime($this->file))."</p>";
  //取得文件修改時間
  echo "<p>$this->file was modified on ".date("D d M Y H:i:s",filemtime($this->file))."</p>";
  //取得文件的 inode 修改時間
  echo "<p>$this->file was changed on ".date("D d M Y H:i:s",filectime($this->file))."</p>"; 
  //顯示此時文件里的所有內容:
  echo "<p>文件里的內容是:<font color=red>".file_get_contents($this->file)."</font></p>";
 }
}

$obj = new fileinfo("adam.txt");
$obj->getfileinfo();
?>
 本文由用戶 webphp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!