php 常用文件操作方法

<?php
header("Content-type: text/html; charset=utf-8");

###########init################
$file=‘/Users/M/Sites/demo/test.php‘;
$dir =‘/Users/M/Sites/demo‘;
$deldir =‘/Users/M/Sites/demo/js‘;

###########文件属性操作################
/*文件属性获取*/
//getFilePro($file);
/*文件路径相关*/
//getPathinfo($file);
/*磁盘大小*/
//echo tosize(disk_total_space(‘/‘));

###########文件目录操作################
/*目录遍历*/
//globDir($dir);
/*目录遍历*/
//foreachDir($dir);
/*删除文件or文件夹*/
//delDir($deldir);
/*移动 重命名*/
//rename($deldir,‘/Users/M/Sites/demo/js-marvin‘);
/*复制目录*/
//copyDir(‘/Users/M/Sites/demo/js‘,‘/Users/M/Sites/demo/js-back‘);

###########文件创建删除################
/*创建目录*/
//mkdir(‘marvin‘,0644);
/*删除空目录*/
//rmdir(‘marvin‘);
/*删除文件*/
//unlink(‘marvin‘);
/*创建空文件*/
//touch(‘marvin.txt‘);

###########文件打开方式################
/*读*/
////$handle=fopen("{$_SERVER[‘DOCUMENT_ROOT‘]}/marvin.txt",‘r‘);
//$handle=fopen(‘http://www.baidu.com‘,‘r‘);
/*写*/
//$handle=fopen("ftp://user:[email protected]/marvim.txt",‘w‘);

/* t文件文件 b二进制文件 默认是t
 * r    只读方式打开 文件指针指向文件头
 * r+   读写方式打开 文件指针指向文件头  保持原文件内容 写入时候从头开始替换
 * w    写方式打开   文件指针指向文件头,不存在的文件则穿件 ,清除原文件内容
 * w+   读写方式打开 文件指针指向文件头,不存在的文件则穿件 清除原文件内容
 * a    写入方式打开 文件指针指向尾部,计数从0开始 不存在就创建
 * a+   读写方式打开,文件指针指向尾部,计数从0开始 不存在就创建
 * x    创建并以写方式打开,文件指针指向文件头,如果文件存在,则失败
 * x+   创建并以读写方式打开,文件指针指向文件头,如果文件存在,则失败
 * */

/*关闭*/
//fclose($handle);

###########文件写入方式 必须是写方式打开################
//$handle=fopen(‘marvin.txt‘,‘r+‘);
//fwrite($handle,‘worldaaaa‘);

###########文件读################
//$handle=fopen(‘marvin.txt‘,‘r‘);
//while(!feof($handle))     //判断指针所在位置是否有数据  有数据返回假  无数据返回真
//    echo fgetc($handle); //fgetc:一次读一个字符 读一个指针移动一次      fgets:一次读取一行

//echo fread($handle,filesize(‘marvin.txt‘));  //第二个参数是文件长度
//while(!feof($handle))
//    echo fread($handle,1024);

###########文件指针操作################
/*移动指针位置*/
//fseek($handle,2);              //fseek($handle,-20,SEEK_END);
/*将指针初始化*/
//rewind($handle);
/*返回指针当前位置*/
//echo ftell($handle);
/*返回指针对于内容*/
//echo fgets($handle);

###########不用打开文件 文件读写################
//file_put_contents(‘marvin.txt‘,"帅帅帅\n",FILE_APPEND);//追加:FILE_APPEND   锁:LOCK_EX
//echo file_get_contents(‘marvin.txt‘);  //远程文件能读
//readfile(‘http://www.baidu.com‘);//读远程文件
//$fileArr = file(‘marvin.txt‘);//按行分割

###########文件锁################
//读锁: LOCK_SH
//写锁: LOCK_EX
//释放锁: LOCK_UN
//防止堵塞:  LOCK_SH+LOCK_NB     LOCK_EX+LOCK_NB
//flock($handle,LOCK_EX);
//flock($handle,LOCK_UN);

function getFilePro($file)
{
    if(file_exists($file))
    {
        echo ‘文件类型是 ‘.filetype($file).‘<br>‘;
        echo ‘文件大小‘.tosize(filesize($file)).‘<br>‘;

        if(is_readable($file))
            echo "文件可读<br>";
        if(is_writable($file))
            echo "文件可写<br>";
        if(is_executable($file))
            echo "文件可执行<br>";

        echo "创建时间 ".date(‘Y-m-d H:i:s‘,filectime($file)).‘<br>‘;
        echo "访问时间 ".date(‘Y-m-d H:i:s‘,fileatime($file)).‘<br>‘;
        echo "修改时间 ".date(‘Y-m-d H:i:s‘,filemtime($file)).‘<br>‘;

    }else
    {
        echo ‘文件不存在‘;
    }

}

function getPathinfo($file)
{
    echo ‘文件名为  ‘.basename($file,‘.php‘).‘<br>‘;//第二参数默认为空 文件名为 test
    echo ‘文件目录位置‘.dirname($file).‘<br>‘;//文件目录位置/Users/M/Sites/demo
    var_dump(pathinfo($file));
}

function globDir($dir)
{
    // var_dump(glob($dir.‘/*.php‘));
    $it = new DirectoryIterator("glob://{$dir}./*.php");
    foreach($it as $f)
    {
        printf("%s: %.1FK\n", $f->getFilename(), $f->getSize()/1024);
        echo ‘<br>‘;
    }
}
function foreachDir($dir,$leve=0,$mark=true)
{
    static  $static_dir;

    if(!is_dir($dir) && !is_file($dir))
        return false;
    if(is_file($dir))
    {
        echo "文件: ".$dir.‘<br>‘;
        return true;
    }
    if ($mark)
        $static_dir = rtrim($dir,‘/‘);

    $dirDesource = opendir($dir);
    readdir($dirDesource);// .
    readdir($dirDesource);// ..

    while($filename=readdir($dirDesource))
    {
        $dir = trim($dir);
        $dir = rtrim($dir,‘/‘);

        $file = $dir.‘/‘.$filename;
        if(is_dir($file)){

            if($dir==$static_dir )
                $leve=0;

            echo str_repeat(‘--‘,$leve)."目录: ".$file.‘<br>‘;
            foreachDir($file,++$leve,false);
        }
        else
            echo str_repeat(‘--‘,$leve)."文件: ".$file.‘<br>‘;
    }
    closedir($dirDesource);
}
function delDir($dir)
{
    $dir = rtrim($dir,‘/‘);
    if(!file_exists($dir))
        die(‘文件不存在‘);
    if(is_file($dir))
        unlink($dir);

    $dirResource = opendir($dir);
    readdir($dirResource);
    readdir($dirResource);

    while($filename=readdir($dirResource))
    {
        $filename=$dir.‘/‘.$filename;
        if(is_dir($filename))
            delDir($filename);
        else
            unlink($filename);
    }
    closedir($dirResource);
    rmdir($dir);
}
function copyDir($src,$dst)
{
    $src=rtrim($src,‘/‘);
    $dst=rtrim($dst,‘/‘);
    if(file_exists($dst))
    {
        if(!is_dir($dst))
            die(‘ 目标文件存在,且不是目录,无法copy‘) ;
    }else
        mkdir($dst);

    $dirResource = opendir($src);
    readdir($dirResource);
    readdir($dirResource);

    while($file=readdir($dirResource))
    {
        $srcfile=$src.‘/‘.$file;
        $dstfile=$dst.‘/‘.$file;
        if(is_dir($srcfile))
            copyDir($srcfile,$dstfile);
        else
            copy($srcfile,$dstfile);
    }
    closedir($dirResource);
}

/*
 * 1TB=10**10 GB=10**20 MB=10**30KB=10**40B=8*10**40bit
 *
 * */
function tosize($size)
{
    $units=‘‘;
    $s=‘‘;
    if($size > pow(2,40))
    {
        $s=$size/pow(2,40);
        $units=‘TB‘;
    }elseif ($size > pow(2,30))
    {
        $s=$size/pow(2,30);
        $units=‘GB‘;
    }elseif ($size > pow(2,20))
    {
        $s=$size/pow(2,20);
        $units=‘MB‘;
    }elseif ($size > pow(2,10))
    {
        $s=$size/pow(2,10);
        $units=‘KB‘;
    }else
    {
        $s=$size;
        $units=‘bypes‘;
    }
    $s=round($s,2);
    return $s.$units;
}
时间: 2024-07-29 07:17:45

php 常用文件操作方法的相关文章

Asp.Net常用文件操作方法

using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Web; using System.Net; using System.Threading; using EcmaScript.NET; using Yahoo.Yui.Compressor; using System.Xml; using System.Data.OleDb; using System.

C#File类常用的文件操作方法(创建、移动、删除、复制等)

File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和 打开一个文件. File类方法的参量很多时候都是路径path.File的一些方法可以返回FileStream和StreamWriter的对象.可以 和他们配套使用.System.IO.File类和System.IO.FileInfo类 主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间. 一.File类常用的操作方法 1.创建文件方法 /

C#封装的常用文件操作类实例

本文实例讲述了C#封装的常用文件操作类.分享给大家供大家参考.具体如下: 这个C#类封装了我们经常能用到的文件操作方法,包括读写文件.获取文件扩展名.复制文件.追加内容到文件.删除文件.移动文件.创建目录.递归删除文件及目录.列目录.列文件等,不可多得. using System; using System.Text; using System.Web; using System.IO; namespace DotNet.Utilities { public class FileOperate

常用文件重定向命令

常用文件重定向命令 command > filename 把标准输出重定向到一个新文件中 command » filename 把标准输出重定向到一个文件中 (追加) command 1 > fielname 把标准输出重定向到一个文件中 command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中 command 2 > filename 把标准错误重定向到一个文件中 command 2 » filename 把标准输出重定向到一个文件

文件操作方法fscanf

直入主题,首先把经典方法放在前面: 如下情况大量有规律的数据存储在文件中格式化的读取方法: Almond #EED9C4 Antique Brass #C88A65 Apricot #FDD5B1 Aquamarine #71D9E2 Asparagus #7BA05B ............................. 先上代码: 1 FILE *fp; //定义文件指针 2 char a[20]={0}; //定义两个数组来接受数据 3 char b[20]={0}; 4 5 fp=

VMware虚拟系统文件夹下几个常用文件的介绍

VMware虚拟系统文件夹下几个常用文件的介绍   1.       vmx文件:表示虚拟系统文件,我们用虚拟机程序打开这个文件以启动虚拟系统. 2.       vmem文件:表示虚拟内存文件,与pagefile.sys(亦称分页文件)同.当虚拟系统执行关机操作后,vmem文件消失,但挂起关闭时,不消失. 3.       vmdk文件:表示虚拟机的一个虚拟磁盘. 4.       vmss文件:执行挂起操作后产生的文件.(相当于一个快照文件?) 5.       当运行一个“虚拟系统”时,为

Linux命令大全----常用文件操作命令

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了Linux命令大全----常用文件操作命令,并附有实例 ls 这个命令是经常用到的,用来显示当前目录下有哪些文件 ,ls最常用的参数有三个: -a -l -F.ls -a说明:Linux上的文件以"."开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示 一般文件名外,连隐藏文件也会显示出来. ls -l(这个参数是字母L的小写,不是数

常用文件(夹)处理方法工具类

功能:文件夹创建.文件删除.文件保存和读取.文件压缩与解压缩.excel文件打印 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import ja

常用文件后缀名与打开方式

常用文件后缀与打开方式   扩展名                          文件类型                                 打开方式    .aiff                              声音文件                          Windows media Player    .!!!                           Netants 暂存文件                          Neta