PHP与MySQL程序设计 第四版 第十章 处理文件和操作系统 笔记
第177页 获取路径的文件名
basename()函数返回路径的文件名部分,提供可选参数、提供可选参数suffix,当返回的文件名包含这个扩展名的时候将忽略该后缀
basename('zhangxingju.com/zhxj/aju/test.txt'); //test.txt basename('zhangxingju.com/zhxj/aju/test.txt','.txt'); //test
获取路径的目录
dirname()函数返回路径的目录部分
dirname('zhangxingju.com/zhxj/aju/test.txt'); //zhangxingju.com/zhxj/aju dirname(__FILE__); // /mnt/hgfs/www/zhangxingju
pathinfo()函数创建一个关联函数 包含目录名 基本名 扩展名
pathinfo('zhangxingju.com/zhxj/aju/test.txt') array(4) { ["dirname"]=> string(24) "zhangxingju.com/zhxj/aju" ["basename"]=> string(8) "test.txt" ["extension"]=> string(3) "txt" ["filename"]=> string(4) "test" }
realpath()函数 确定绝对路径
disk_free_spache() 返回指定目录所在磁盘分区的可用空间 单位 字节
disk_free_space('tmp'); //9753321472
disk_total_space()函数返回指定目录所在磁盘分区的总容量
disk_total_space('tmp'); //16800718848
确定目录内容的大小 php不提供标准函数 使用递归函数获取
function directorySize($directory) { $directorySize = 0; //打开目录读取内容 if ($dh = @opendir($directory)) { //迭代处理每个目录项 while (($filename = readdir($dh))) { //过滤掉一些目录项 if ($filename != "." && $filename != "..") { //文件,确定大小并添加到总大小 if (is_file($directory . "/" . $filename)) { $directorySize += filesize($directory . "/" . $filename); } //新目录,开始递归 if (is_dir($directory . "/" . $filename)) { $directorySize += directorySize($directory . "/" . $filename); } } } } @closedir($dh); return $directorySize; } $dir="/www/zhangxingju.com/"; $totalsize=round((directorySize($dir)/1048576),2); echo $totalsize.'MB'; //0.04MB
183页 文件模式
184页 读取文件
file()将文件读取到数组中,不需要建立文件句柄来读取该函数
file_get_contents()将文件的内容读取到字符串中
190页 移动文件指针
fseek()函数将指针移动到给定的偏移量所指定的位置
ftell()函数获取资源中文件指针当前位置的偏移量
rewind()函数将文件指针移回至资源的开头
193页 清理输入
escapeshellarg() 用单引号界定给定的参数 并为输入的参数中的单引号加上前缀(转义)
escapeshellcmd() 函数的工作前提与escapeshellarg相同,通过对 shell元字符转义来清理可能危险的输入
这些字符包括 #&;`|*?~<>^()[]{}$\, \x0A 和 \xFF
文件函数官方手册地址
Filesystem 函数
basename — 返回路径中的文件名部分
chgrp — 改变文件所属的组
chmod — 改变文件模式
chown — 改变文件的所有者
clearstatcache — 清除文件状态缓存
copy — 拷贝文件
delete — 参见 unlink 或 unset
dirname — 返回路径中的目录部分
disk_free_space — 返回目录中的可用空间
disk_total_space — 返回一个目录的磁盘总大小
diskfreespace — disk_free_space 的别名
fclose — 关闭一个已打开的文件指针
feof — 测试文件指针是否到了文件结束的位置
fflush — 将缓冲内容输出到文件
fgetc — 从文件指针中读取字符
fgetcsv — 从文件指针中读入一行并解析 CSV 字段
fgets — 从文件指针中读取一行
fgetss — 从文件指针中读取一行并过滤掉 HTML 标记
file_exists — 检查文件或目录是否存在
file_get_contents — 将整个文件读入一个字符串
file_put_contents — 将一个字符串写入文件
file — 把整个文件读入一个数组中
fileatime — 取得文件的上次访问时间
filectime — 取得文件的 inode 修改时间
filegroup — 取得文件的组
fileinode — 取得文件的 inode
filemtime — 取得文件修改时间
fileowner — 取得文件的所有者
fileperms — 取得文件的权限
filesize — 取得文件大小
filetype — 取得文件类型
flock — 轻便的咨询文件锁定
fnmatch — 用模式匹配文件名
fopen — 打开文件或者 URL
fpassthru — 输出文件指针处的所有剩余数据
fputcsv — 将行格式化为 CSV 并写入文件指针
fputs — fwrite 的别名
fread — 读取文件(可安全用于二进制文件)
fscanf — 从文件中格式化输入
fseek — 在文件指针中定位
fstat — 通过已打开的文件指针取得文件信息
ftell — 返回文件指针读/写的位置
ftruncate — 将文件截断到给定的长度
fwrite — 写入文件(可安全用于二进制文件)
glob — 寻找与模式匹配的文件路径
is_dir — 判断给定文件名是否是一个目录
is_executable — 判断给定文件名是否可执行
is_file — 判断给定文件名是否为一个正常的文件
is_link — 判断给定文件名是否为一个符号连接
is_readable — 判断给定文件名是否可读
is_uploaded_file — 判断文件是否是通过 HTTP POST 上传的
is_writable — 判断给定的文件名是否可写
is_writeable — is_writable 的别名
lchgrp — Changes group ownership of symlink
lchown — Changes user ownership of symlink
link — 建立一个硬连接
linkinfo — 获取一个连接的信息
lstat — 给出一个文件或符号连接的信息
mkdir — 新建目录
move_uploaded_file — 将上传的文件移动到新位置
parse_ini_file — 解析一个配置文件
parse_ini_string — Parse a configuration string
pathinfo — 返回文件路径的信息
pclose — 关闭进程文件指针
popen — 打开进程文件指针
readfile — 输出文件
readlink — 返回符号连接指向的目标
realpath_cache_get — Get realpath cache entries
realpath_cache_size — Get realpath cache size
realpath — 返回规范化的绝对路径名
rename — 重命名一个文件或目录
rewind — 倒回文件指针的位置
rmdir — 删除目录
set_file_buffer — stream_set_write_buffer 的别名
stat — 给出文件的信息
symlink — 建立符号连接
tempnam — 建立一个具有唯一文件名的文件
tmpfile — 建立一个临时文件
touch — 设定文件的访问和修改时间
umask — 改变当前的 umask
unlink — 删除文件