简单的 文件 管理操作

主要实现功能

遍历文件列表

文件添加

文件删除

文件内容编辑

文件重命名

主要使用函数

unlink — 删除文件
fopen — 打开文件或者 URL
fclose — 关闭一个已打开的文件指针
file_get_contents — 将整个文件读入一个字符串
file_put_contents — 将一个字符串写入文件
rename — 重命名一个文件或目录
is_dir — 判断给定文件名是否是一个目录
opendir — 打开目录句柄
readdir — 从目录句柄中读取条目
closedir — 关闭目录句柄
filetype — 取得文件类型
filectime — 取得文件的 inode 修改时间
filesize — 取得文件大小

filesystem.php

<?php

//文件操作
header('Content-Type:text/html; charset=utf-8');
error_reporting(0);
$path = './';
$filterList = array('filesystem.php');      //过滤不显示的文件
$act = $_GET['act'] ? $_GET['act'] : 'list';

switch ($act) {
    case 'del':         //删除文件处理
        $filename = $_GET['filename'];
        unlink($filename);
        break;
    case 'add':         //添加文件页面
        break;
    case 'create':      //创建文件
        //1.获取要创建的文件名
        $filename = trim($path, '/') . '/' . $_POST['filename'];
        //2.判断文件是否已存在
        if (file_exists($filename)) {
            die('要创建的文件已经存在');
        }
        //3.创建文件
        $f = fopen($filename, 'w');
        fclose($f);
        break;
    case 'edit':        //文件内容编辑
        $filename = $_GET['filename'];
        $content = file_get_contents($filename);
        break;

    case 'update':      //文件内容更新
        $filename = $_POST['filename'];
        $content = $_POST['content'];
        file_put_contents($filename, $content);
        break;
    case 'rename' :     //重命名页面
        $filename = $_GET['filename'];
        break;
    case 'doRename' :   //重命名处理
        $oldName = trim($path, '/') . '/' . $_POST['old_name'];
        $newName = trim($path, '/') . '/' . $_POST['new_name'];
        rename($oldName, $newName);
        break;
    default:
        break;
}

//判断是否为文件为目录
if (!file_exists($path) || !is_dir($path)) {
    die($path . '目录无效!');
}

//遍历文件列表数据
echo '<h3>' . $path . '目录下的文件信息</h3>';
echo '<h4><a href="filesystem.php?act=add">创建文件</a></h4>';
echo '<table border="0">';
echo '<tr bgcolor="#ccc" align="left"><th>序号</th><th>文件名</th><th>文件类型</th><th>文件大小</th><th>创建时间</th><th>操作</th></tr>';

$dir = opendir($path);
if ($dir) {
    $i = 0;
    while ($f = readdir($dir)) {
        if ($f == '.' || $f == '..') {
            continue;
        }
        if (in_array($f, $filterList)) {
            continue;
        }
        $file = trim($path, '/') . '/' . $f;
        $i++;
        echo '<tr>';
        echo '<td>' . $i . '</td>';
        echo '<td>' . $f . '</td>';
        echo '<td>' . filetype($file) . '</td>';
        echo '<td>' . filesize($file) . '</td>';
        echo '<td>' . date('Y-m-d H:i:s', filectime($file)) . '</td>';
        echo '<td><a href="filesystem.php?act=del&filename=' . $file . '">删除</a> <a href="filesystem.php?act=edit&filename=' . $file . '">编辑</a>  <a href="filesystem.php?act=rename&filename=' . $file . '">重命名</a></td>';
        echo '</tr>';
    }
    closedir($dir);
}

echo '<tr bgcolor="#ccc" align="left"><td colspan="6"> </td></tr>';
echo '</table>';

if ($_GET['act'] == 'add') {
    echo '<br/><br/>';
    echo '<form action="filesystem.php?act=create" method="post">';
    echo '新建文件: <input type="text" name="filename" value="新建文件" size="12" />';
    echo '<input type="submit" value="新建文件"/>';
    echo '</form>';
}

if ($_GET['act'] == 'edit') {
    echo '<br /><br />';
    echo '<form action="filesystem.php?act=update" method="post">';
    echo '<input type="hidden" name="filename" value="' . $filename . '" />';
    echo '文件名:' . $filename . '<br/><br/>';
    echo '文件内容:<textarea name="content" cols=40 rows=6>' . $content . '</textarea>';
    echo '<input type="submit" value="执行编辑" />';
    echo '</form>';
}

if ($_GET['act'] == 'rename') {
    echo '<br /><br />';
    echo '<form action="filesystem.php?act=doRename" method="post">';
    echo '<input type="hidden" name="old_name" value="' . $filename . '" />';
    echo '文件名:' . $filename . '<br/><br/>';
    echo '重命名:<input type="text" name="new_name" value=""/>';
    echo '<input type="submit" value="执行编辑" />';
    echo '</form>';
}
?>  
前望
原文地址:https://www.cnblogs.com/ybbqg/p/2496755.html