• 5.part5-2day php文件


    学习目的:处理文件

    一、文件处理

    1、$file = fopen('wecome.txt', 'r'); 打开文件,如果无法打开就会返回0(false)。参数1是包含文件名的文件路径,参数2是打开模式,

    r 只读,在文件开头开始

    r+ 读/写,在文件的开头开始

    w 只写,打开并清空文件的内容;如果文件不存在,则创建新文件

    w+ 读/写,打开文件并清空文件的内容;如果文件不存在,则创建新文件

    a 追加,打开并向文件末尾进行写操作,如果文件不存在,则创建新文件

    a+ 读/追加, 通过向文件末尾写内容,来保持文件内容

    x 写 创建新文件,如果文件已存在,则返回FALSE和一个错误

    x+ 读/写 创建新文件,如果文件已存在,则返回FALSE和一个错误

    2、fclose($file); 关闭文件。

    3、feof($file); 检测文件末尾

    4、fgets($file); 逐行读取

    5、fgetc($file); 逐字符读取

    6、readfile($filePath); 读取一个文件并将其写入到输出缓冲,不需要打开文件直接写入文件路径即可

    7、file(); 读取文件内容,按行存放在数组中包括换行符,返回一个数组

    8、file_get_contents($filePath); 把整个文件读入一个字符串中

    9、file_exists($filePath); 判断文件或目录是否存在

    10、mkdir($fileDir, '0777'); 创建文件夹,参数1是文件目录名称,参数2是文件权限,默认是0777(允许全局访问)

    11、rmdir($fileDir); 删除一个空目录

    12、unlink($filePath); 删除文件

    13、copy($oldFile, $newFile); 复制文件,参数1是要复制的文件,参数2是复制后的文件存放的位置,两个均是带有文件民的文件路径,如果目标地址中存在同名文件就会被覆盖

    14、is_dir($file); 判断文件时否为一个目录

    15、$dir = opendir($file); 打开目录

    16、closedir($dir); 关闭目录

    17、readdir($dir); 打开一个目录,读取它的内容

    删除一个文件夹和里面内容的例子:

    <?php
        delDirFile($fileDir);
        function delDirFile($fileDir)
        {
            $dir = opendir($fileDir);
            while (($item = readdir($dir)) !== false) {
                if ($item != '.' && $item != '..') {
                    if (is_dir($item)) {
                        delDirFile($fileDir . $item);
                    } else {
                        unlink($fileDir . $item);
                    }
                }
            }
        }
    ?>

    二、上传文件

    以上传图片为例:

    //前端代码 upload.html 用表单
    <form method="post" action="upload.php" enctype="multipart/form-data">
        <input type="file" name="image" />
        <input type="submit" value="上传"/>
    </form>
     
     
     //后端代码 upload.php
    <?php
        //允许上传的文件类型
        $allowType = array('image/gif', 'image/jpeg', 'image/jpg', 'image/png');
        $imageName = time();
        $imagePath = 'upload/';
        if (empty($_FILES['image']['name'])) {
            echo '请上传图片';
            exit;
        }
     
        if ($_FILES['image']["size"] > 2097152) {
            echo '上传文件超过2M';
            exit;
        }
     
        if (!in_array($_FILES['image']['type'], $allowType)) {
            echo '上传的图片格式不正确';
            exit;
        }
     
        if ($_FILES['image']['error'] > 0) {
            echo '上传失败,错误编码:' . $_FILES['file']['error'] . '<br>';
        } else {
            if (!file_exists($imagePath)) {
                mkdir($imagePath, 0777, true);
            }
            $imageName .= $_FILES['image']['name'];
            $imagePath .= $imageName;
             
            //将临时文件移动到新的存储目录中并且永久的保存
            move_uploaded_file($_FILES['image']['tmp_name'], $imagePath);
            echo '<img src="' . $imagePath . '" alt="image">';
        }
    ?>

    与$_FILES相关的解释:$_FILES存储上传文件的相关信息

    • $_FILES['image']['name']; 上传文件的名字
    • $_FILES['image']['size']; 上传文件的大小
    • $_FILES['image']['type']; 上传文件的类型
    • $_FILES['image']['error']; 上传文件的结果 0 表示上传成功
    • $_FILES['image']['temp_name']; 文件存储的临时位置

    三、解析URL和文件路径

    <?php
        $url = 'http://www.baidu.com/test.php?test=test&name=tom#top';
        //输出URL的各个组成部分
        print_r(parse_url($url));
         
        //仅输出协议部分
        echo parse_url($url, PHP_URL_SCHEME);
        //仅输出主机域名部分
        echo parse_url($url, PHP_URL_HOST);
        //仅输出路径部分
        echo parse_url($url, PHP_URL_PATH);
        //仅输出查询参数部分
        echo parse_url($url, PHP_URL_QUERY);
        //仅输出锚点部分
        echo parse_url($url, PHP_URL_FRAGMENT);
    ?>
    <?php
        $filePath = 'D:siteimg图2.png';
        //pathinfo函数输出指定路径的各个部分
        print_r(pathinfo($filePath));
     
        //仅获取目录名称
        echo pathinfo($filePath, PATHINFO_DIRNAME);
        //仅获取文件名 + 扩展
        echo pathinfo($filePath, PATHINFO_BASENAME);
        //仅获取文件扩展名
        echo pathinfo($filePath, PATHINFO_EXTENSION);
        //仅获取文件名
        echo pathinfo($filePath, PATHINFO_FILENAME);
    ?>

    文件函数友情链接

  • 相关阅读:
    2.舵机
    1.呼吸灯
    Python学习笔记——Matplot库
    计算机仿真技术学习笔记(一)
    48、从堆和栈上建立对象哪个快?(考察堆和栈的分配效率比较)
    47、抖动你知道是什么吗?它也叫颠簸现象
    46、交换空间与虚拟内存的关系
    44、程序从堆中动态分配内存时,虚拟内存上怎么操作的
    43、一般情况下在Linux/windows平台下栈空间的大小
    42、一个由C/C++编译的程序占用的内存分为哪几个部分?
  • 原文地址:https://www.cnblogs.com/ldwtry/p/12185619.html
Copyright © 2020-2023  润新知