广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    PHP编程中八种常见的文件操作方式

    2018-10-04 14:39:20 次阅读 稿源:互联网
    零七广告
    文件和目录的操作
    PHP处理本地服务器上的文件和目录是非常方便的,但有时候会出现权限和路径相关的问题
    1.打开文件
    resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )
    $handle = fopen(filename,mode)//打开文件,返回代表此文件的资源的句柄
    文件名称可以使用相对路径或者绝对路径也可以使用网络协议模式,打开模式具有r/r+/w/w+/a/a+/x/x+/b
    在操作二进制文件时如果没有指定 'b' 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 /r/n 字符的奇怪问题。
    为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 'b' 标记。
    以下是几种打开文件的方式
    $fp = @fopen('log.txt',"rb");
    $fp = @fopen('../log.txt',"rb");
    $fp = @fopen("http://www.runer.com.cn/default.htm","rb");//还可以使用ftp和ghoper等协议,必须启用php.ini文件中的allow_url_fopen选项
    ////////////////////////////代码部分////////////////////////////////////////
    $filename1 = "userinfo.txt";//目录下或include_path中存在这个文件
    $filename2 = "test.txt";//目录下或include_path并不存在这个文件
    $resource1 = fopen($filename1,"rb");
    @$resource2 = fopen($filename2,"rb");//因为目录中不存在这个文件,并且并未使用或include_path寻找包含文件所在路径则此操作会报错,使用错误抑制符@可以迫使浏览器不输出错误信息
    if($resource1)
    echo "打开文件{$filename1}成功";
    if(!@fopen($filename2,"r"))
    echo "打开文件{$filename2}不成功";
    //////////////////////////////////////////////////////////////////////////
    ---------------------输出结果----------------------------------------
    打开文件userinfo.txt成功

    ---------------------------------------------------------------------
    2.使用完毕文件后,要显式的告诉PHP已经使用完文件,让操作系统确保将文件的所有内容正确地从缓冲区刷新到硬盘
    使用fclose()关闭文件,
    bool fclose ( resource handle )//关闭一个已打开的文件指针
    3.读取文件,fopen函数的mode参数允许读取,PHP提供了几个函数从文件读取数据
    string fgets ( int handle [, int length] )从文件指针中读取一行,在二进制文件上尝试fgets会产生不可预测的结果
    如果不指定长度,默认读取1K数据,碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止
    string fgetss ( resource handle [, int length [, string allowable_tags]] )从文件指针中读取一行并过滤掉 HTML 标记
    fgetc()读取单个字符
    fread()读取任意二进制数据
    ////////////////////////////代码部分////////////////////////////////////////
    $handle = fopen ("test.jpg", "rb");
    $c;
    while (!feof($handle)) {
    $contents .= @fread($handle, 8192);//循环读取并将其合并为一个大块文件
    }
    fclose($handle);
    //////////////////////////////////////////////////////////////////////////
    ---------------------输出结果----------------------------------------

    ---------------------------------------------------------------------
    4.判断文件读取的状态
    每个文件句柄都有一个文件指针,或者一个指出下一个操作将在文件中哪里发生的游标,根据fopen函数的mode参数
    文件指针最初位于文件的开头(0),或者文件的末尾
    feof()可以判断文件是否已经到末尾(到末尾后函数返回TRUE)
    filesize()函数返回文件的大小 5.写入文件
    fwrite()函数执行文件写入
    ////////////////////////////代码部分////////////////////////////////////////
    $filename = 'test.txt';
    $somec;
    // 首先我们要确定文件存在并且可写。
    if (is_writable($filename)) {
    // 在这个例子里,我们将使用添加模式打开$filename,
    // 因此,文件指针将会在文件的开头,
    // 那就是当我们使用fwrite()的时候,$somecontent将要写入的地方。
    if (!$handle = fopen($filename, 'a')) {
    echo "不能打开文件 $filename";
    exit;
    }
    // 将$somecontent写入到我们打开的文件中。
    if (fwrite($handle, $somecontent) === FALSE) {
    echo "不能写入到文件 $filename";
    exit;
    }
    echo "成功地将 $somecontent 写入到文件$filename";
    fclose($handle);
    } else {
    }
    echo "文件 $filename 不可写";
    //////////////////////////////////////////////////////////////////////////
    ---------------------输出结果----------------------------------------
    成功地将 添加这些文字到文件 写入到文件test.txt
    ---------------------------------------------------------------------
    对于二进制数据,必须指定第三个参数,它包含写入到磁盘的数据字节数
    $result = @fwrite($fp,$binary_data,mb_strlen($binary_data,'8bit'));
    6.文件权限和其他信息
    is_readable()//判断文件是否可读
    is_writeable()//判断文件是否可写
    is_writable()//判断文件是否可写
    fileperms()//判断文件的权限(UNIX风格的文件权限测试函数)
    file_exists()//是否存在这个文件
    fileowner()//判断文件所属用户
    filegroup()//判断文件所属组
    7.删除和重命名文件
    unlink()//删除文件
    rename()//重命名文件
    8.访问目录
    目录访问建议使用前向斜线"/",兼容windows和unix系统
    basename()//返回不包括路径信息的文件名
    dirname()//返回文件名的目录部分
    realpath()//接受相对路径,返回文件的绝对路径
    pathinfo()//提取给定路径的目录名,基本文件名和扩展名
    opendir()//打开目录,返回资源句柄
    readdir()//读取目录项
    rewinddir()//将读取指针返回开头
    closedir()//关闭读取句柄
    chdir()//改变当前脚本执行期间的当前工作目录
    mkdir()//创建目录
    rmdir()删除目录
    ////////////////////////////代码部分////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////
    ---------------------输出结果----------------------------------------

    filename: web : filetype: dir

    filename: study : filetype: dir

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告