<?php /** * 创建目录(支持多级目录) * * @param string $dir 目录 * @return bool 创建目录成功=true|创建目录失败=false */ function make_dir(string $dir): bool { return !(!is_dir($dir) && !mkdir($dir, 0755, true) && !is_dir($dir)); } /** * 删除文件或目录 * * @param string $path 文件或目录的路径 * @return bool 删除成功=true|删除失败=false */ function remove(string $path): bool { $ok = true; if (is_file($path) && is_writable($path)) { // 删除目标是文件 $ok = unlink($path); } elseif (is_dir($path) && is_writable($path)) { // 删除目标是目录 $scandir = array_diff(scandir($path), ['.', '..']); // 扫描目录 $counter = count($scandir); // 获取目录下的文件总数(文件+直接子目录) // 开始删除目录下的文件和子目录(如果有的话) foreach ($scandir as $file) { if (remove("$path/$file") === true) { $counter--; } else { break; } } // 文件和子目录已全部删除,可以删除目标目录(说明:rmdir()只能删除空目录) $ok = $counter === 0 && rmdir($path); } return $ok; } // 重命名或移动目录 rename('/tmp', '/home/user/login/docs'); // 重命名成功返回true,否则返回false // 目录是否存在 is_dir('/path/to/my/is_dir'); // 目录存在返回true,否则返回false // 删除目录(目录必须是空的,而且要有相应的权限;失败时会产生一个E_WARNING级别的错误) rmdir('/path/to/my/rmdir'); // 删除成功返回true,失败返回false // 目录是否可读 is_readable('/path/to/my/is_readable'); // 如果目录存在并且可读则返回true,否则返回false // 目录是否可写 is_writable('/path/to/my/is_writable'); // 如果目录存在并且可写则返回true,否则返回false // 新建文件 file_put_contents('/path/to/file_put_contents.txt', '文件内容'); // 返回写入到文件内数据的字节数,失败时返回false; // 警告:此函数可能返回布尔值FALSE,但也可能返回等同于FALSE的非布尔值,应使用“===”运算符来测试此函数的返回值 // 重命名或移动文件 rename('/tmp/tmp_file.txt', '/home/user/login/docs/my_file.txt'); // 重命名成功返回true,否则返回false // 文件是否存在(该函数也可检查目录是否存在,但建议使用is_dir()检查目录是否存在) file_exists('/path/to/file_exists.txt'); // 文件存在返回true,否则返回false // 删除文件 unlink('/path/to/unlink.txt'); // 删除成功返回true,失败返回false;发生错误时会产生一个E_WARNING级别的错误 // 复制文件 copy('example.txt', 'example.txt.bak'); // 复制成功返回true,否则返回false // 文件是否可读 is_readable('test.txt'); // 如果文件存在并且可读则返回true,否则返回false // 文件是否可写 is_writable('test.txt'); // 如果文件存在并且可写则返回true,否则返回false // 将上传的文件移动到新位置(专门处理通过PHP的HTTP POST上传机制所上传的文件) move_uploaded_file('/tmp/php/php1h4j1o', '/path/to/move_uploaded_file.txt');
Copyright © 2024 码农人生. All Rights Reserved