文件及目录相关处理问题

一、文件的读写操作

打开文件

fopen

打开文件或者 URL
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
fopen中mode的几种参数介绍:
'r':只读方式打开,将文件指针指向文件头。
'r+':读写方式打开,将文件指针指向文件头。
'w':写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

屏幕快照 2017-09-03 下午12.56.38.png

写入函数

1. fwrite

写入文件(可安全用于二进制文件)
int fwrite ( resource $handle , string $string [, int $length ] )

fwrite() 把 string 的内容写入 文件指针 handle 处。
fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。

2.fputs

fputs — fwrite的别名

读取函数

1.fread

读取文件(可安全用于二进制文件)
string fread ( resource $handle , int $length )
返回所读取的字符串, 或者在失败时返回 FALSE。
fread() 从文件指针 handle 读取最多 length 个字节。 该函数在遇上以下几种情况时停止读取文件:

  • 读取了 length 个字节
  • 到达了文件末尾(EOF)

2.fgets

从文件指针中读取一行
string fgets ( resource $handle [, int $length ] )
参数 length:
从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

3.fgetc:

从文件指针中读取字符

关闭文件

fclose

不需要fopen打开的函数

file_get_content

file_put_content

其他读取函数

file

把整个文件读入一个数组中

readfile

输出文件,读取文件并写入到输出缓冲。

访问远程文件

屏幕快照 2017-09-03 下午1.22.58.png

二、目录相关操作

名称相关

basename

返回路径中的文件名部分

dirname

返回路径中的目录部分

pathinfo

返回文件路径的信息

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
?>

输出

/www/htdocs/inc
lib.inc.php
php
lib.inc

目录读取

opendir

打开目录句柄
resource opendir ( string $path [, resource $context ] )
打开一个目录句柄,可用于之后的 closedir()readdir()rewinddir() 调用中。

closedir

关闭目录句柄

readdir

readdir — 从目录句柄中读取条目

rewinddir

倒回目录句柄

目录读取

rmdir
前提是该目录为空,没有文件或者其他目录

文件大小

filesize

文件拷贝

copy
bool copy ( string $source , string $dest [, resource $context ] )

文件移动

rename
bool rename ( string $oldname , string $newname [, resource $context ] )

文件删除

unlink
bool unlink ( string $filename [, resource $context ] )

文件类型

filetype
文件或者目录

文件锁

flock

示例

1、在文件的开头写入helloworld 执行一次,写入一次,不得覆盖后面的内容

<?php

// 打开文件
//
// 将文件的内容读取出来,在开头加入Hello World
//
// 将拼接好的字符串写回到文件当中
//
// Hello 7891234567890
//
$file = './hello.txt';

$handle = fopen($file, 'r');

$content = fread($handle, filesize($file));

$content = 'Hello World'. $content;

fclose($handle);

$handle = fopen($file, 'w');

fwrite($handle, $content);

fclose($handle);

2、遍历目录

<?php
$dir = "./dirtest";
function loopDir($dir){
    $handle = opendir($dir);
    while(false !== ($file=readdir($handle)) ){  
        if($file != '.' && $file != '..' && $file != '.DS_Store'){
            echo $file ."\n";
            if(filetype($dir.'/'.$file) == 'dir'){
                loopDir($dir. '/'. $file);
            }
        }

    }
    closedir($handle);

    
}
loopdir($dir);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 文件系统概述 文件的类型 在程序运行时,程序本身和数据一般都存在内存中,当程序运行结束后,存放在内存中的数据被释放...
    dptms阅读 997评论 0 1
  • PHP文件操作 像其他编程语言(c , java)一样,php内置了多个文件函数,用来完成文件的打开、读写、关闭等...
    at小宇阅读 294评论 0 0
  • 1 文件与目录 1.1 解析目录路径 返回路径中的文件名部分string basename(string path...
    zshanjun阅读 462评论 0 0
  • 一、会话控制(session与cookie) 1.cookie简介 Cookie是存储在客户端浏览器中的数据,我们...
    空谷悠阅读 616评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139