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 — 删除文件