文件系统处理的作用:
1. 所有的项目离不开文件处理
2. 可以用文件长时间保存数据
3. 建立缓存, 服务器中文件操作
文件处理
以Linux为模型的, 在Windows只能获取file, dir或unknow 三种类型
在Linux/Unix下, block, char, dir, fifo, file, link, unknown和种型
block :块设置文件,磁盘分区,软驱, cd-rom等
char: 字符设备,I/O 以字符为单位, 键盘,打印机等
dir: 目录也是文件的一种
fifo:
file:
link:
unknown
filetype("目录或文件名")
is_array();
is_int();
is_string();
is_null;
is_bool();
is_dir -- 判断给定文件名是否是一个目录
is_executable -- 判断给定文件名是否可执行
is_file -- 判断给定文件名是否为一个正常的文件
is_link -- 判断给定文件名是否为一个符号连接
is_readable -- 判断给定文件名是否可读
is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的
is_writable -- 判断给定的文件名是否可写
is_writeable -- is_writable() 的别名
file_exists();
filesize();
is_readable();
is_writeable();
filectime();
filemtime();
fileactime();
stat();
相对路径:相对于当前目录的上级和下级目录
. 当前目录
.. 上一级目录
./php/apache/index.php
php/apahce/index.php
login.php
./login.php
../images/tpl/logo.gif
路径分隔符号
linux/Unix "/"
windows "\"
DIRECTORY_SEPARATOR 为不同平台,在Windows \ Linux /
不管是什么操作系统PHP的目录分割符号都支技 / (Linux)
在PHP和Apache配置文件中如果需要指定目录,也使用/作为目录符号
绝对路径:
/ 根路径
/images/index.php
指的操作系统的根
指的是存放网站的文档根目录
分情况
如果是在服务器中执行(通过PHP文件处理函数执行)路径 则 “根”指的就是操作系统的根
如果程序是下载的客户端,再访问服务器中的文件时,只有通过Apache访问,“根”也就指的是文档根目录
http://www.xsphp.com/logo.gif
basename(url)
dirname(url)
pathinfo(url)
创建文件 touch("文件名")
删除文件 unlink("文件路径");
移动文件 为文件重新命名 rename("当前文件路径", “目录为文件路径”)
复制文件 copy("当前", “目标”);
一定要有PHP执行这个文件权限, Apache, 一个用户
和权限设计有关的函数
ls -l 或 ll
_rwxrwxrwx 777
_ 类型 _文件 d 表示是目录 l b
rwx 表这个文件的拥有者 r读 w写 x执行
rwx 表这个文件的拥有者所在的组 r读 w写 x执行
rwx 其它用户对这个为文件的权限 r读 w写 x执行
r 4
w 2
x 1
7 7 7 4+2+1 4+2+1 4+2+1
rwx rwx rwx
644
4+2 4 4
rw_ r__ r__
754
chmod u=rwx,g=rw,o=x
chmod 777 demo.php
chmod 644 demo.html
chown mysql demo.php
chgrp apache demo.php
chgrp -- 改变文件所属的组
chmod -- 改变文件模式
chown -- 改变文件的所有者
filegroup -- 取得文件的组
fileowner -- 取得文件的所有者
读取文件中的内容
file_get_contents(); //php5以上
file()
readfile();
不足:全部读取, 不能读取部分,也不能指定的区域
fopen(URL, mode)
本地文件:
./test.txt
c:/appserv/www/index.html
/usr/local/apahce/index.html
远程:
http://www.baidu.com
fopen("./test.txt", "a+")
fwrite fread
r , 以只读模式打开文件
r+ 写
w, 以只写的方式打开,如果文件不存在,则创建这个文件,并写放内容,如果文件存在,并原来有内容,则会清除原文件中所有内容,再写入(打开已有的重要文件)
w+ 除了可以写用fwrite, 还可以读fread
a 以只写的方式打开,如果文件不存在,则创建这个文件,并写放内容,如果文件存在,并原来有内容,则不清除原有文件内容,再原有文件内容的最后写入新内容,(追加)
a+除了可以写用fwrite, 还可以读fread
b 以二进制模式打开文件(图,电影)
t 以文本模式打开文件
fread() // 第一个是读取指定长度的字符
fgetc() //一次从文件中读取一个字符
fgets() //一次从文件中读取一行字符
feof($file); 如果读取文件出错,或到文件结束,则返回真
写入文件
file_put_contents(“URL”, “内容字符串”); //php5以上
如果文件不存在,则创建,并写入内容
如果文件存在,则删除文件中的内容,重新写放
不足: 不能以追加的方式写,也不能加锁
fopen()
fwrite() 别名 fputs
第一个参数是文件资源(fopen返回来的),第个参数是写的内容
本地文件:
./test.txt
c:/appserv/www/index.html
/usr/local/apahce/index.html
远程:
http://www.baidu.com
http://www.163.com
ftp://user@pass:www.baidu.com/index.php
ftell($file) //返回当前文件针的位置
fseek($file, 10);
fread();
rewind();
目录的处理
opendir()
readdir()
closedir()
rewinddir()
创建目录
mkdir(); //创建一个空目录
删除目录
rmdir(); //只可以删除空目录
评论留言