zoukankan      html  css  js  c++  java
  • 【代码总结】文件的基本操作

    --------------------------------

            文件的基本操作

    ------------------------------------

    一、文件的打开和关闭

    1、打开文件

      fopen(文件名,打开模式)

     1 /*
     2 r: 只读模式打开文件,文件指针执行首位。
     3 r+: 可读可写模式打开文件,文件指针执行首位,若文件指针不是在最后,则是覆盖写。
     4 w:  以写方式打开文件,文件内容清空,若文件不存在,则尝试创建。
     5 w+: 以写和读方式打开文件,文件内容清空,若文件不存在,则尝试创建。(也会覆盖写)
     6 a:  以追加内容方式打开文件,指针移至最后,若文件不存在,则尝试创建。
     7 a+: 以追加内容和可读方式打开文件,指针移至最后,若文件不存在,则尝试创建。
     8 x:  以创建方式打开文件,可写。若文件已存在,则报错。
     9 x+: 以创建方式打开文件,可写可读。若文件已存在,则报错。
    10 */

      模式:读(r,r+)、清空写(w/w+)、追加写(a/a+)、创建模式(x,x+)

    2、文件关闭

    1 fclose() //打开之后一定要关闭文件                                                                                                                                    

    二、读取文件内容

    1 fread(打开的文件资源,读取的长度)   //读取指定长度的字符串
    2 fgetc()    //读取一个字符
    3 fgets()    //读取一行字符
    4 file()     //不需要打开文件,可直接文件内容
    5 readfile() //不需要打开文件,文件内容读取并输出
    6 file_get_contents() //不需要打开文件,读取文件内容
    7 file_put_contents() //不需要打开文件,将指定内容写入文件

    三、写入文件内容

     1 fwrite(打开的文件资源,被写入的字串[,长度])                                                                                                                          

     四、访问远程文件

    如果访问远程文件,必须在PHP配置文件中记过"allow_url_fopen"选项

     1 <?php
     2 //通过HTTP打开远程文件
     3 $file = fopen('http://www.xxx.com/','r') or die('打开远程文件失败');
     4 //循环从文件中读取的内容
     5 while (!feof ($file)){
     6     //读取一行
     7     $line = fgets($file,1024);
     8     //如果找到远程文件中的标题标记则取出标题,并推出循环,不再读取文件
     9     if(preg_match('/title(.*)</title>/',$line,$out)){
    10         //将标题标记中的标记符取出
    11         $title = $out[1];
    12         //结束循环
    13         break;
    14     }
    15 }
    16 //关闭文件资源
    17 fclose($file);
    18 //输出标题
    19 echo $title;
    20 ?>

    四、文件指针操作

        ftell() --返回文件指针的位置
        fseek() --设置文件指针的位置
        rewind()  --将文件指针移至首位

    1 ftell($f)               //输出刚打开的默认位置,指针显示为0
    2 fseek($f,-2,SEEK_CUR);  //从当前指针位置开始,向前移动2位
    3 fseek($f,2,SEEK_SET);   //从文件指针开始位置,向后移动2位
    4 fseek($f,-5,SEEK_END);  //从文件指针的最后位置开始,向前移动5位
    5 rewind($f)              //移动到指针的开头

     五、文件的锁定机制

    当一个进程在访问文件时加上锁,其他进程想要对该文件进行访问,则必须等到锁定被释放以后。这样可以避免在访问同一个文件时破坏数据

    bool flock ( int $handle , int $operation [, int &$wouldblock ] )
            轻便的咨询文件锁定
          operation参数:
            LOCK_SH:取得共享锁定(从文件中读取数据时使用)
            LOCK_EX:取得独占锁定(向文件中写入数据时使用)
            LOCK_UN:释放锁定(无论共享或独占锁,都用它释放)
             LOCK_NB:附加锁定(如果不希望flock()在锁定时堵塞,则应在上述锁定后加上该锁 )

     1 <?php
     2 $fp = fopen("/tmp/lock.txt", "w+");
     3 //向文件中写入数据时使用
     4 if(flock($fp,LOCK_EX)){
     5     fwrite($fp,"Write something here");
     6     //释放锁定
     7     flock($fp,LOCK_UN)
     8 }else{
     9     echo "Couldn't lock the file !";
    10 }
    11 fclose($fp);
    12 ?>

     六、文件的一些基本操作函数

      1、copy(来源文件,目的文件)     --复制文件

    1 <?php
    2 if(copy('./file1.txt'),'../data/file2.txt'){
    3     echo '文件复制成功';
    4 }else{
    5     echo '文件复制失败';
    6 }
    7 ?>

      2、unlink()        --删除文件

     1 <?php
     2 $filename =  "file1.txt"
     3 if(file_exists($filename)){
     4     if(unlink($filename)){
     5         echo '文件删除成功';
     6     }else{
     7         echo '文件删除失败';
     8     }
     9 }else{
    10     echo '目标文件不存在';
    11 }
    12 ?>

      3、rename(源文件名,修改的文件名)  --重命名文件

    1 <?php
    2 if(rename('./demo.php','./demo1.php')){
    3     echo '文件重命名成功';
    4 }else{
    5     echo '文件重命名失败';
    6 }
    7 ?>

      4、ftrunacte(目标文件,截取长度)   --将文件截取到指定的长度

    1 <?php
    2 $fp = fopen('./data.txt','r+') or die ('文件打开失败');
    3 if(ftruncate($fp,1024)){
    4     echo '文件截取成功';
    5 }else{
    6     echo '文件截取失败';
    7 }
    8 ?>

     七、思维导图

  • 相关阅读:
    oracle之bitmap索引
    oracle命令集
    Spring入门注解版
    spring入门一
    bootstrap栅格系统
    Struts2之基于配置的字段校验
    Struts2之文件上传下载
    Struts2之类范围拦截器和方法拦截器
    struts2之输入验证
    C++虚函数和纯虚函数的区别
  • 原文地址:https://www.cnblogs.com/sqyysec/p/6736694.html
Copyright © 2011-2022 走看看