php文件操作-正则表达式

php文件操作-正则表达式

文件操作

读取和写入

读取文件内容,输出到浏览器

1
readfile(path);

把文件内容取出来做成数组,内容行数为元素个数

1
file(path);

将整个文件读入一个字符串

1
file_get_contents(path);

将一个字符串写入文件

1
file_put_contents(path, $str);

打开,写入/读取,关闭

打开一个文件

1
$res = fopen(path);

把内容写入文件

1
fwrite($res, $str);

移动文件指针

1
fseek($res, $offset);

读取文件

1
fread($res, $length);

关闭一个已打开的文件指针

1
fclose($res);

测试文件指针是否到了文件结束的位置

1
feof($res);

返回文件指针读/写的位置

1
ftell($res);

文件指针的位置倒回至开头

1
rewind($res);

打开方式

r 以只读方式打开 如果文件不存在报错
r+ 以读写方式打开 覆盖写 如果文件不存在报错

w 以只写方式打开 如果文件不存在 则创建
w+ 以读写方式打开 如果文件不存在 则创建

a 以只写方式打开 如果文件不存在 则创建 累加写入
a+ 以读写方式打开 如果文件不存在 则创建 累加写入

x 以只写方式打开 文件存在报错 如果文件不存在创建
x+ 以读写方式打开 文件存在报错 如果文件不存在创建

文件路径

以数组形式返回文件路径的信息

1
pathinfo(path);

返回路径中的文件名部分

1
basename(path);

返回路径中的目录部分

1
dirname(path);

讲数组转换成为url地址的参数信息

1
http_build_query($arr);

解析URL,返回其组成部分

1
parse_url($url);

将字符串解析成多个变量

1
2
3
parse_str($str, $output);
echo $output['arr'][0];
echo $output['arr'][1];

文件的判断

判断文件是否存在

1
file_exists($filename);

判断是否是一个文件

1
is_file($filename);

判断是否是一个目录

1
is_dir($filename);

判断是否可写

1
is_writable($filename);

判断是否可读

1
is_readable($filename);

判断是否可执行

1
is_executable($filename);

文件夹操作

创建文件夹

1
mkdir(path);

删除文件夹

1
rmdir(path);

打开文件夹

1
opendir(path);

关闭文件夹

1
closedir(path);

读取文件夹

1
readdir(path);

删除文件

1
unlink($filename);

拷贝文件

1
copy ($source, $dest);

重命名一个文件或目录

1
rename ($oldname,$newname)

文件时间和大小

文件的创建时间

1
filectime($filename);

文件的修改时间

1
filemtime($filename);

文件的最后访问时间

1
fileatime($filename);

文件大小

byte是最小单位

1024b = 1kb

1024kb = 1mb

1024mb = 1GB

1024GB = 1TB

统计文件大小

1
filesize($filename);

文件上传

1、准备form表单

1
2
3
<form method="post"  enctype = "multipart/form-data">

</form>

2、判断错误号

1
$file['error']

3、判断文件是否超过了你指定的大小

1
$file['size'] > $maxSize

4、判断是否是你准许的mime类型

1
in_array($file['type'], $allowMine)

5、生成新的文件路径,或者是新的文件名

1
2
3
$info = pathinfo($file['name']);
$subFix = $info['extension'];
in_array($subFix, $allowSub)

6、判断是否是上传文件

1
is_uploaded_file($file['tmp_name'])

7、移动文件

1
move_uploaded_file($file['tmp_name'], $path.$newName)

注:

要开启

1
file_uploads = On;

限定你上传文件的大小

1
upload_max_filesize = 1024;

上传的临时文件目录

1
upload_tmp_dir = "D:/wamp64/tmp";

允许同时上传的个数

1
max_file_uploads = 20;

文件下载

1、告知你的浏览器文件类型

header('Content-type:image/jpeg');

2、告知附件

header('Content-Disposition: attachment; filename="new.jpg"');

3、告知大小

header('Content-Length'.filesize('image.jpg'));

4、输出内容

readfile('image.jpg');

正则表达式

组成部分

1、定界符

2、原子

3、元字符

4、模式修正符

定界符

有哪些可以作为定界符?

/ / @ @ # # $ $ % %

推荐使用

//

原子

就是正则表达式中最小的一个单位

0-9 之间的纯数字

\d 

非数字 = /[^0-9]/

\D 

0-9 a-z A-Z _

\w 

非0-9 a-z A-Z _ = /[^a-zA-Z0-9_]/

\W

代表所有的空格 \n 回车 \t tab(制表符) \r换行

\s 

非所有的空格 \n 回车 \t tab \r换行

\S 

原子表

就是一系列的原子 []

只要是数字就可以匹配到
[0-9]
只要是小写字母就可以匹配到
[a-z]
只要是大写字母就可以匹配到
[A-Z]

抑扬符

取反和以什么开始,配合原子表使用
^
只要是a-z之间的小写字母开始的都能匹配到
^[a-z]
非a-z之间的所有的小写字母
[^a-z]
匹配所有
.

除了 \n 回车以外的字符都可以匹配到

元字符

就是修饰原子的,在原子的基础之上,再加以修饰,效果累加

前面的原子出现零次或者多次 零次返回空字符串 多次返回所有(贪婪)

* = {0, }

前面的原子出现一次或者多次 零次返回匹配失败

+ = {1, }

前面的原子出现零次或者一次 零次返回空字符串 一次返回出来一个

? = {0, 1}

以什么结尾

$ 或者 |

改变优先级将某一块作为一个整体

()

匹配长度

{}

模式修正符

对前面的规则再次进行修饰,在原有的功能之上再加修饰,效果累加

不区分大小写

i

视为多行

m

视为单行

s

取消贪婪

U

组合使用

.*
.*?
.*+
imsU