My Little World

文件

readfile 传入一个文件路径,输出一个文件
int readfile ( string $文件名)

file_get_contents 传入一个文件或文件路径,打开这个文件返回文件的内容。文件的内容是一个字符串。
string file_get_contents ( string filename)

资源类型处理方式
fopen函数,打开资源,参数为文件打开路径,打开文件模式,返回资源类型
resource fopen ( string $文件名, string 模式)

fread函数 读取打开的文件资源。读取指定长度的文件资源,读取一部份向后移动一部份。至到文件结尾。
string fread ( resource $操作资源, int 读取长度)

fclose函数的功能是关闭资源。资源有打开就有关闭
bool fclose ( resource $操作资源 )

fopen的模式
模式 说明
r 只读方式打开,将文件指针指向文件头。
r+ 读写方式打开,将文件指针指向文件头。
w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建
a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建
x+
创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建
t windows下将\n转为\r\n
b 二进制打开模式

创建和修改

file_put_contents 向指定的文件当中写入一个字符串,如果文件不存在则创建文件。返回的是写入的字节长度
int file_put_contents ( string $文件路径, string $写入数据])

fwrite 配合fopen进行写入操作,写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
int fwrite ( resource $文件资源变量, string $写入的字符串 [, int 长度])
1.不论有没有新建都会打开文件重新写入
2.原有的文件内容会被覆盖掉
3.文件不存在会创建
模式
x 每次写入会干掉原有文件的内容,文件不存在都会创建
a 每次写入都会向文件的尾端追加内容

tmpfile 创建一个临时文件,返回资源类型。关闭文件即被删除
resource tmpfile ( )

rename 重命名文件 返回一个bool值,将旧的名字改为新的名字
bool rename($旧名,$新名);

copy 复制文件 将指定路径的源文件,复制一份到目标文件的位置。
bool copy(源文件,目标文件)

unlink 删除文件 这个删除是直接删除。使用的是windows电脑,在回收站看不到这个文件
bool unlink(指定路径的文件)

检测文件属性函数

bool file_exists ( $指定文件名或者文件路径) 功能:文件是否存在。
bool is_readable ( $指定文件名或者文件路径) 功能:文件是否可读
bool is_writeable ( $指定文件名或者文件路径) 功能:文件是否可写
bool is_executable ( $指定文件名或者文件路径) 功能:文件是否可执行
bool is_file ( $指定文件名或者文件路径) 功能:是否是文件
bool is_dir ( $指定文件名或者文件路径) 功能:是否是目录
void clearstatcache ( void ) 功能:清楚文件的状态缓存

常用函数

rewind ( resource handle) 指针回到开始处
fseek ( resource handle, int offset [, int from_where]) 文件指针向后移动指定字符
filesize 检测文件的大小
file(文件名) 把整个文件读入一个数组中
fgets(文件名) 从文件指针中读取一行,读到最后返回false
fgetc(文件名) 从文件指针中读取一个字符,读到最后返回false
ftruncate(文件名,长度) 将文件截断到给定的长度
filectime(文件名) 文件创建时间
filemtime(文件名) 文件修改时间
fileatime(文件名) 文件上次访问时间

文件锁定

bool flock ( resource $handle , int $operation) 轻便的咨询文件锁定
锁类型 说明
LOCK_SH 取得共享锁定(读取的程序)
LOCK_EX 取得独占锁定(写入的程序
LOCK_UN 释放锁定(无论共享或独占)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

$fp = fopen("demo.txt", "r+");

// 进行排它型锁定
if (flock($fp, LOCK_EX)) {

fwrite($fp, "文件这个时候被我独占了哟\n");

// 释放锁定
flock($fp, LOCK_UN);
} else {
echo "锁失败,可能有人在操作,这个时候不能将文件上锁";
}

fclose($fp);

?>

处理文件夹

处理文件夹的基本思想如下:
1.读取某个路径的时候判断是否是文件夹
2.是文件夹的话,打开指定文件夹,返回文件目录的资源变量
3.使用readdir读取一次目录中的文件,目录指针向后偏移一次
4.使用readdir读取到最后,没有可读的文件返回false
5.关闭文件目录

opendir 打开文件夹,返回操作资源
readdir 读取文件夹资源
is_dir 判断是否是文件夹
closedir 关闭文件夹操作资源
filetype 显示是文件夹还是文件,文件显示file,文件夹显示dir

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
//设置打开的目录是D盘
$dir = "d:/";

//判断是否是文件夹,是文件夹
if (is_dir($dir)) {
if ($dh = opendir($dir)) {

//读取一次向后移动一次文件夹指针
echo readdir($dh).'<br />';
echo readdir($dh).'<br />';
echo readdir($dh).'<br />';
echo readdir($dh).'<br />';

//读取到最后返回false

//关闭文件夹资源
closedir($dh);
}
}
?>

文件权限设置

函数用法与linux的权限操作的用法一样。
函数 功能说明
chmod 修改读取模式
chgrp 修改用户组
chown 修改权限

文件路径函数

array pathinfo ( string $路径)
功能:传入文件路径返回文件的各个组成部份

1
2
3
4
5
6
7
8
<?php
$path_parts = pathinfo('d:/www/index.inc.php');

echo '文件目录名:'.$path_parts['dirname']."<br />";//d:/www
echo '文件全名:'.$path_parts['basename']."<br />";//index.inc.php
echo '文件扩展名:'.$path_parts['extension']."<br />";//php
echo '不包含扩展的文件名:'.$path_parts['filename']."<br />"; //index.inc
?>

string basename ( string $路径[, string $suffix ])
功能:传入路径返回文件名
第一个参数传入路径。
第二个参数,指定我文件名到了指定字符停止。

dirname(string $路径)
功能:返回文件路径的文件目录部份

mixed parse_url ( string $路径 )
功能:将网址拆解成各个部份

string http_build_query ( mixed $需要处理的数据)
功能:生成url 中的query字符串

1
2
3
4
5
6
7
8
//定义一个关联数组
$data = [
'username'=>'php',
'area'=>'hubei'
];

//生成query内容
echo http_build_query($data);//username=php&area=hubei

http_build_url()
功能: 生成一个url