• 半吊子菜鸟学Web开发 -- PHP学习3-文件


    1 PHP文件系统

    1.1 PHP文件的读取


    文件读取的函数是file_get_contents,可以将整个文件读到一个字符串之中

    $content = file_get_constents('./test.test');//不知道为什么我的电脑里面必须要用绝对路径
    

    也可以控制读取内容的开始点以及长度

    PHP也提供类似于C语言操作文件的方法,使用fopen,fgets,fread等方法,fgets可以从文件指针中读取一行,freads可以读取指定长度的字符串。

    $fp = fopen('./text.txt', 'rb');
    while(!feof($fp)) {
        echo fgets($fp); //读取一行
    }
    fclose($fp);
    

    ``` $fp = fopen('./text.txt', 'rb'); $contents = ''; while(!feof($fp)) { $contents .= fread($fp, 4096); //一次读取4096个字符 } fclose($fp); ``` ### 1.2 判断文件是否存在 *** PHP用来判断是否存在的函数有两个is_file和file_exists. ``` if(file_exits($filename)){ echo file_get_contents($filename); } ``` is_file确切来说是给定的路径是否是一个文件: ``` $filename = './test.txt' if(is_file($filename)){ echo file_get_contents($filename); } ``` is_readable 和 is_writeable,顾名思义,就是判断文件是否可以读写 ``` if (is_writeable($filename)) { file_put_contents($filename, 'test'); } if (is_readable($filename)) { echo file_get_contents($filename); ``` ### 1.3 获取文件属性 *** * fileowner:获得文件的所有者 * filectime:获取文件的创建时间 * filemtime:获取文件的修改时间 * fileatime:获取文件的访问时间
    $filename = './test.php';
    echo '文件所有者'.fileowner($filename);
    echo '文件创建时间'.date('Y-m-d H:i',filectime($filename));
    echo '文件修改时间'.date('Y-m-d H:i',filemtime($filename));
    

    1.4 获得文件的大小


    文件的大小以字节数表示,我们可以进行转换

    $pdfname = '/home/dai/桌面/byte-of-python-chinese-edition.pdf';
    $size = filesize($pdfname)/pow(1024,2);
    $size = number_format($size, 2);
    echo 'byte-of-python-chinese-edition:'.$size.'MB';
    

    1.5 PHP写入文件


    与读取文件一样,可以有直接的函数和C风格的写入函数

    $filename = './test.txt';
    $data = 'test';
    file_put_contents($filename, $data);
    
    $fp = fopen('./test.txt', 'w');
    fwrite($fp, 'hello');
    fwrite($fp, 'world');
    fclose($fp);
    

    1.6 删除文件


    删除文件

    unlink($filename);
    

    删除文件夹

    rmdir($filename);
    

    如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以使用glob函数遍历所有文件。

    foreach (glob("*") as $filename) {//glob() 函数返回匹配指定模式的文件名或目录。
        unlink($filename);
    }
    
  • 相关阅读:
    实现Promise的first等各种变体
    js打乱数组的实战应用
    Vue单页面中进行业务数据的上报
    如何实现一个楼中楼的评论系统
    vue实现对表格数据的增删改查
    用CSS3实现无限循环的无缝滚动
    使用vue实现tab操作
    redis事务与关系型数据库事务比较
    优先队列原理与实现
    MySQL排序原理与案例分析
  • 原文地址:https://www.cnblogs.com/daibigmonster/p/8158769.html
Copyright © 2020-2023  润新知