1,文件操作
<?php
function readDir($path = 'e:/data/')
{
$arr = array();
$handle = opendir($path);
while (($item = readdir($handle)) !== false) {
// . 和 .. 特殊目录
if ($item != "." && $item != "..") {
// 1, 是否是文件
if (is_file($path . "/" . $item)) {
$arr['file'][] = $item;
}
// 2, 是否是文件夹
if (is_dir($path . "/" . $item)) {
$arr['dir'][] = $item;
}
}
}
// 关闭文件操作句柄
closedir($handle);
}
// -----------------------------------------
$path = "/usr/local/src";
$file_dir = "/data/1.png";
/**
* 1,获取指定文件或目录的类型
* fifo
* char
* dir
* block
* link
* file
* unknown
*/
filetype($path . "/" . $file_dir);
// 2,获取文件大小
// filesize($path."/".$file_dir);
transByte(filesize($path . "/" . $file_dir));
/**
* 转为 Bytes/KB/MB/GB/TB/EB
* @param $size
* @return string
*/
function transByte($size)
{
$arr = array("Byte", "KB", "MB", "GB", "TB", "EB");
$i = 0;
while ($size >= 1024) {
$size /= 1024;
$i++;
}
// 保留两位小数
return round($size, 2) . $arr[$i];
}
// -----------------------------------------
// 3,判断文件是否可读
is_readable($path . "/" . $file_dir);
// 4,判断文件是否可写
is_writable($path . "/" . $file_dir);
// 5,判断文件是否可执行
is_executable($path . "/" . $file_dir);
// 6, 获取文件最后一次索引被修改的时间
date("Y-m-d H:i:s",filectime($path . "/" . $file_dir));
// 7, 获取文件最后一次内容被修改的时间
date("Y-m-d H:i:s",filemtime($path . "/" . $file_dir));
// 8, 获取文件最后一次被访问的时间
date("Y-m-d H:i:s",fileatime($path . "/" . $file_dir));
2, 文件创建、修改、查看
<?php
/**
* 创建文件,检查文件的合法性, 检查文件是否重复
* @param string $filename E:/info/1.txt
*/
function createFile($filename = "E:/info/1.txt")
{
// 验证文件名的合法性
$pattern = "/[\/,\*,<>,\?\|]/";
if (!preg_match($pattern, basename($filename))) {
// 检测当前目录下是否存在同名文件
if (!file_exists($filename)) {
// 创建文件
if (touch($filename)) {
return "文件创建成功";
} else {
return "文件创建失败";
}
} else {
return "文件已存在,请重命名后创建";
}
}
}
/**
* 查看文件
*/
$filename = "E:/info/1.txt";
file_get_contents($filename);
$string = "this is test";
highlight_string($string);
$filename =<<<EOF
<?php
echo "this is test";
EOF;
highlight_file($filename);
/**
* 修改文件
*/
if (file_put_contents($filename,$submit_content)){
$msg = "文件修改成功";
}else{
$msg = "文件修改失败";
}
/**
* 查看文件内容
*/
// 1,如果文件类型为图片类型,点击查看直接显示图片
// 2,如果不是图片类型,我们可以显示文件中的内容
// 3,用到jQuery UI中的Dialog来显示图片
<?php
/**
* 获取文件的扩展名
*/
// 方法一:
$file = 'x.y.z.png';
echo pathinfo($file, PATHINFO_EXTENSION);
// 方法二:
$ext = strtolower(end(explode(".", $file)));
$imgextArr = array("gif", "png", "jpeg", "png");
if (in_array($ext, $imgextArr)) {
} else {
}
// ------------------------------------------------------
/**
* jQuery dialog 图片操作插件
*/
// <script>
/*
function showDetail(title,filename){
$("#showImg").attr("src",filename);
$("#showDetail").dialog({
height:"auto",
width:"auto",
position:{my:"center",at:"center",collision:"fit"},
model:false,//是否模式对话框
draggable:true,//是否允许拖拽
resizable:true,//是否允许拖动
title:t,//对话框标题
show:"slide",
hide:"explode"
});
}
*/
// </script>
// -------------------------------------------
/**
* 重命名文件
*/
// 1, 用到 rename($oldname,$newname):重命名一个文件或者目录
/**
* 删除文件
*/
// 1, unlink($filename)来删除文件
/**
* 下载文件
*/
// 1,简单的文件下载可以通过超链接形式下载
// <a href="下载文件名">单击我下载</a>
// 2,如果下载图片、HTML等类型的文件,浏览器会直接显示
// 3,通过 header() 函数发送网页头信息来实现文件下载
header("Content-Disposition:attachment;filename=要下载的文件名");
header("Content-Length:文件的大小");
Readfile("文件名称");
// 得到文件名
basename($filename);
// 设置php.ini配置文件中的 outputbuffer:off
/**
* 查看文件中的内容大小
*/
function dirSize($path)
{
$sum = 0;
global $sum; // 单独文件大小计算,不要循环叠加
$handle = opendir($path);
while (($item = readdir($handle)) !== false) {
if ($item != "." && $item != "..") {
if (is_file($path . "/" . $item)) {
$sum += filesize($path . "/" . $item);
}
if (is_dir($path . "/" . $item)) {
// 回调函数是文件是自己调用自己,魔术方法
$func = __FUNCTION__;
$func($path . "/" . $item);
}
}
}
closedir($handle);
return $sum;
}
/**
* 返回上一级操作
*/
// 1,通过dirname($path)函数完成返回上一级操作
/**
* 复制/拷贝文件
*/
mkdir($path, 0777, true);
// 第三个参数:true标识允许创建多级目录
function copyFolder($src, $dst)
{
// $dst--目标目录
if (!file_exists($dst)) {
mkdir($dst, 0777, true);
}
// $src--要复制的文件/目录
$handle = opendir($src);
while (($item = readdir($handle)) !== false) {
if (is_file($src . "/" . $item)) {
copy($src . "/" . $item, $dst . "/" . $item);
}
if (is_dir($src . "/" . $item)) {
// 回调函数是文件是自己调用自己,魔术方法
$func = __FUNCTION__;
// 如果是文件夹,使用递归的方法把子文件夹下的文件进行复制
$func($src . "/" . $item, $dst . "/" . $item);
}
}
closedir($handle);
return "复制成功";
}
/**
* 重命名/剪切文件夹
*/
// 1, 重命名文件夹通过rename($oldname,$newname)实现
rename($src,$dst."/",basename($src))
function cutFilter($src,$dst){
if (file_exists($dst)){
if (is_dir($dst)){
if(!file_exists($dst."/".basename($src))){
if (rename($src,$dst."/".basename($src))){
$msg = "剪切成功";
}else{
$msg = "剪切失败";
}
}else{
$msg = "存在同名文件夹";
}
}else{
$msg = "不是一个文件夹";
}
}else{
$msg = "目标文件夹不存在";
}
return "剪切成功";
}
/**
* 删除文件夹a
*/
unlink($filename);// 删除文件
rmdir($path);// 删除空目录
/**
* 复制文件
*/
copy($src,$dst);