PHP编程语言手册五:PHP中对文件的操作

1.创建文件(含递归文件夹)
创建文件.png
$path = 'G:/Out/language/php/2/3/45/dragon.txt';
createFile($path);

function createFile($path){
    $dir = dirname($path);//获取父文件
    if (!file_exists($dir)) {
        mkdirs($dir);
        createFile($path);
    } else {
        fopen($path, "w");
    }
}

function mkdirs($dir){
    return is_dir($dir) or mkdirs(dirname($dir)) and mkdir($dir, 0777);
}
复制代码

2.写入字符文件

文件不存在,则创建文件再写入

写入文件.png
/**
 * 将内容写入文件
 * @param $path 路径
 * @param $content 内容
 */
function writeStr($path, $content){
    if (file_exists($path)) {
        if ($fp = fopen($path, 'w')) {
            fwrite($fp, $content);
            fclose($fp);
            echo "<br>写入成功 " . $content;
        } else {
            echo "<br>创建失败 ";
        }
    } else {
        createFile($path);
        writeStr($path, $content);
    }
}
复制代码

3.读取文件
读取文件.png
|-- 内置函数 readfile 读取文件
echo readFile($path);

|-- fgetc 逐字读取
function readFileByPath($path){
    $result = "";
    $file = fopen($path, "r") or $result . "无法打开文件!";
    while (!feof($file)) {
        $result .= fgetc($file);
    }
    fclose($file);
    return $result;
}

|-- fgets 逐行读取
function readFileByLine($path){
    $result = "";
    $file = fopen($path, "r") or $result . "无法打开文件!";
    while (!feof($file)) {
        $result .= fgets($file)."<br/>";
    }
    fclose($file);
    return $result;
}

|-- 以行划分将文件读入数组
var_dump(file($path));

array(3) { [0]=> string(26) "应龙----张风捷特烈 " [1]=> string(49) "一游小池两岁月,洗却凡世几闲尘。 " [2]=> string(48) "时逢雷霆风会雨,应乘扶摇化入云。" }
复制代码

4.文件信息

还有很多乱七八糟的方法...用的时候再找吧,感觉和Python挺像的

信息.png
$path = 'G:/Out/language/php/2/3/45/dragon.txt';

$stat = stat($path);
echo "创建时间:" . date("Y-m-d H:i", $stat["ctime"]);//2019-03-14 04:45
echo "修改时间:" . date("Y-m-d H:i", $stat["mtime"]);//2019-03-14 04:54
echo "文件大小:" . $stat["size"] . " 字节";
echo "文件模式:" . $stat["mode"];
echo "文件名:" . basename($path);
echo "父文件夹:" . dirname($path);
echo "是否是文件夹:" . (is_dir($path) ? "true" : "false");
echo "是否是文件:" . (is_file($path) ? "true" : "false");
echo "是否存在:" . (file_exists($path) ? "true" : "false");
echo "文件所在磁盘可用大小:" . disk_free_space(dirname($path)) . " 字节";
echo "文件所在磁盘总大小:" . disk_total_space(dirname($path)) . " 字节";
echo "文件类型:" . filetype($path);//file
复制代码

5.文件读写权限

基本上和其他语言一样

r	只读。在文件的开头开始。
r+	读/写。在文件的开头开始。

w	只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+	读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。

a	追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
a+	读/追加。通过向文件末尾写内容,来保持文件内容。

x	只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
x+	读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

作者:张风捷特烈
链接:https://juejin.im/post/5c8a19d75188257dd56e7d91
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

THE END