This article will take you through file and directory operations in PHP

青灯夜游
Release: 2023-04-11 09:22:01
forward
5886 people have browsed it

How does PHP perform file and directory operations? The following article will give you an in-depth understanding of HP file and directory operations. I hope it will be helpful to you!

This article will take you through file and directory operations in PHP

Path and disk operations


Relative path and absolute path

Absolute path: The path where the drive letter of the current file is located is the starting point

For example:
For example, picture 1.png
This article will take you through file and directory operations in PHP
The absolute path of this picture is

D:\Google\123\1.png

Let’s explain the content represented by this string of paths separately

  • D: (referring to the drive letter
  • \ (the one with the table is the directory separator
  • Tip: (windows operating system Supports forward slashes and backslashes, other systems support forward slashes /, so forward slashes can reduce compatibility issues)

Relative path: With the location of the file to be operated on The directory is the starting path

This is arelative concept, different reference objects write different paths

Why do you say that
Let’s give an example:
Suppose we use 1.png as a reference

This article will take you through file and directory operations in PHP

This article will take you through file and directory operations in PHP

    ##1.txt
  • ./1.txt(There is a dot before 1.)

  • 2.txt
  • ../2.txt (two dots before 2)

    Explain it

  • 1.txt is
  • a file in the same directory, so only one dot is needed in front, and this dot represents the current directory
  • 2.txt is the
  • lower directory, 1.png is the upper directory of 2.txt, the two dots here represent the upper directory
  • believe it Everyone already knows about relative paths and absolute paths

Getting file path information


We need to understand it first Some concepts

Path:


/love/xianyu.txt

    Directory name (dirname ) is /love
  • with the file extension name (basename) being xianyu.txt
  • the extension name (extension) being .txt
  • the file name (filename) being xianyu

Enter the text below

pathinfo()

In order to obtain

Specified path and file name, you can use the pathinfo() function, this function will return an associative array

<?php
$xianyu = "/love/xianyu.php";
$result = pathinfo($xianyu);
foreach($result as $key=>$value){
    echo "$key=>$value\n";
}
?>
/*
输出:
dirname=>/love
basename=>xianyu.php
extension=>php
filename=>xianyu
*/
Copy after login

Quickly obtain the file name: basename()

##basename()

Function, Quickly obtain the file name part of the specified file without reading from the array

<?php
$xianyu = "/love/xianyu.php";
echo $filepath."中的文件名是:".basename($xianyu);
?>
/*
中的文件名是:xianyu.php
*/
Copy after login

Quickly obtain the directory part of the path: dirname()

Use the
dirname()

function to quickly obtain it Specify the directory part of the specified file

<?php
$filepath = "/love/xianyu.php";
echo $filepath."中的路径部分是:". dirname($filepath);
?>
/*
/love/xianyu.php中的路径部分是:/love
*/
Copy after login

Directory operation


Opening and closing directories


Handle:

    opendir(), closedir()
The handle can be considered as a
return value

. With the handle, you can operate on the open directory

<?php
$dir = "images";
if($dir_handle = opendir($dir))
{
echo "获取目录句柄成功!";
closedir($dir_handle); //记得释放句柄
}
else
{
echo "打开目录错误";
}
?>
Copy after login

Open the images directory

This article will take you through file and directory operations in PHP
This article will take you through file and directory operations in PHP

##Release handle
  • Why release the handle? If you don't release the handle, it's like you and a bunch of people are writing in a notebook. If you take it away and don't put it back, others can't write. So releasing the handle can save server resources
  • 创建目录

    <?php
    mkdir("123")
    ?>
    Copy after login

    删除目录

    <?php
    rmdir("123")
    ?>
    Copy after login

    获取当前工作目录

    <?php
    echo getcwd()
    ?>
    Copy after login

    改变当前工作目录

    <?php
    echo getcwd() . &#39;<br>&#39;; // 显示当前目录
    chdir(&#39;hhh&#39;); //改变当前目录
    echo getcwd() . &#39;<br>&#39;; // 显示当前目录
    ?>
    Copy after login

    获取目录句柄条目

    • readdir()

    将一个参数名作为参数传递给函数readdir(),这个函数能返回目录下所有子目录和文件

    注意:调用一次返回一个!!

    <?php
    if ($handle = opendir(&#39;.&#39;)) {
    while (false !== ($file = readdir($handle))) {
    echo "$file\n";
    }
    closedir($handle);
    }
    ?>
    Copy after login

    This article will take you through file and directory operations in PHP

    读取目录条目

    • scandir()

    直接返回指定目录下文件和子目录,并且按照要求排序(默认字母升序)

    <?php
    $dir1 = scandir("D:\新建文件夹 (2)");
    $dir2 = scandir("D:\新建文件夹 (2)",1);//降序排列
    print_r($dir1);
    print_r($dir2)
    ?>
    Copy after login

    This article will take you through file and directory operations in PHP

    This article will take you through file and directory operations in PHP

    文件操作


    操作文件的一般步骤即:打开,读取或写入,关闭

    由于目录和文件本质上都属于文件,除了使用函数不同,很多操作都是相通的

    一般操作

    判断文件是否存在

    <?php
    if(file_exists("test.txt"))
    {
    //如果文件存在就执行操作
    }
    ?>
    //如果文件存在返回true,不存在返回false
    Copy after login

    创建,打开,关闭文件

    • fopen(), fclose()

    <?php
    //以只读方式打开文件,将文件指针指向文件头
    $handle = fopen("test.txt", "r");
    //以读写方式打开,将文件指针指向文件头
    $handle = fopen("test.txt", "r+");
    //以写入方式打开,将文件指针指向文件头,并将文件大小截为0。如果文件不存在则尝试创建。
    $handle = fopen("test.txt", "w");
    //以读写方式打开,将文件指针指向文件头,并将文件大小截为0。如果文件不存在则尝试创建。
    $handle = fopen("test.txt", "w+");
    //以写入方式打开文件,将文件指针指向文件末尾。如果文件不存在则尝试创建。
    $handle = fopen("test.txt", "a");
    //以读写方式打开文件,将文件指针指向文件末尾。如果文件不存在则尝试创建。
    $handle = fopen("test.txt", "a+");
    fclose()
    ?>
    Copy after login

    读取文件

    • fread(), file_get_contents(), file()

    <?php
    //需要使用fopen,fread,fclose来进行文件的读取操作
    $filename = "test.txt";
    $handle = fopen($filename, "r");
    $contents = fread($handle, filesize($filename)); //fread需要传入两个参数,第一个参数为
    文件句柄,第二个参数为最大读取的字节数
    fclose($handle);
    //更加简洁的方式
    file_get_contents($filename)
    ?>
    Copy after login

    写入文件

    • fwrite(), file_put_contents()

    <?php
    //需要fopen,fwrite,fclose来进行文件的写入操作
    $handle = fopen("test.txt","w");
    fwrite($handle,"添加文字到文件中");//fwrite接受两个参数作为输入,$handle为文件句柄,"添加文
    字到文件中"为需要写入的内容
    fclose($handle);
    //更加简洁的方式
    file_put_contents("test.txt", "使用file_put_contents()函数写入的内容")
    ?>
    Copy after login

    文件和目录基本操作

    删除文件

    • unlink()

    <?php
    $file = "temp.txt";
    unlink($file);
    ?>
    Copy after login

    复制文件

    • copy()

    <?php
    $sourceFile = "html/cache.txt"; //被复制的文件必须确保存在
    $targetFile = "html/copyCache.txt";
    copy($sourceFile, $targetFile)
    ?>
    Copy after login

    移动,重命名文件或目录

    • rename()

    <?php
    //使用rename()函数重命名一个文件或目录
    rename(&#39;test.txt&#39;, &#39;rename.txt&#39;) //将test.txt文件重命名为rename.txt
    rename(&#39;test&#39;,&#39;rename&#39;) //将test目录重命名为rename
    //使用rename()函数移动文件,并改名
    rename("test.txt","test/a.txt");//将test.txt移动到test文件夹下,并改名为a.txt
    //使用rename()函数移动目录到目标目录
    rename("test","html/test");
    ?>
    Copy after login

    推荐学习:《PHP视频教程

    The above is the detailed content of This article will take you through file and directory operations in PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!