Web项目文件操作(PHP)

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值