PHP编程语言手册五:PHP中对文件的操作
1.创建文件(含递归文件夹)
$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.写入字符文件
文件不存在,则创建文件再写入
/**
* 将内容写入文件
* @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.读取文件
|-- 内置函数 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挺像的
$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