Maison > développement back-end > tutoriel php > Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHP

Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHP

青灯夜游
Libérer: 2023-04-11 09:22:01
avant
5943 Les gens l'ont consulté

Comment effectuer des opérations sur les fichiers et les répertoires en PHP ? L'article suivant vous donnera une compréhension approfondie des opérations sur les fichiers et les répertoires HP. J'espère qu'il vous sera utile !

Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHP

Opérations sur les chemins et les disques


Chemins relatifs et absolus

Chemin absolu : à partir de la lettre de lecteur où se trouve le fichier actuel situé Chemin

Par exemple :
Par exemple, image 1.png
Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHP
Le chemin absolu de cette image est

D:Google1231.pngD:谷歌1231.png

我们来分开讲解一下这一串路径代表的内容

  • D:(指的是盘符
  • (带表的是目录分隔符
  • 提示:(windows操作系统支持正斜线和反斜线,其它系统支持正斜线/,所以正斜线可以减少兼容性问题)

相对路径:以操作的文件所在的目录为起点的路径

这是一个相对的概念,不同的参照物写的所对应的路径也不相同

为什么这么说的
举个例子吧:
假设我们以 1.png作为参照物

Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHP

Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHP

  • 1.txt
  • ./1.txt(1前面有个 点.)

  • 2.txt
  • ../2.txt(2前面两个点)

    解释一下吧

  • 1.txt作为同级目录下的文件,所以前面只需要1个点,这一个点就代表当前目录
  • 2.txt作为下层目录,1.png就是2.txt的上层目录,这里两个点就代表上层目录
  • 相信大家已经了解了相对路径和绝对路径

文件路径信息获取


在这之前我们需要先理解一些概念

路径:
/love/xianyu.txt

  • 目录名(dirname)为/love
  • 带有文件拓展名(basename)为 xianyu.txt
  • 拓展名(extension)为.txt
  • 文件名(filename)为 xianyu

下面进入正文

pathinfo()

为了获取指定的路径和文件名,可以使用pathinfo()函数,这个函数会·返回一个关联数组

<?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
*/
Copier après la connexion

文件名快速获取:basename()

basename()函数,快速获取指定文件文件名部分,不用从数组中读取

<?php
$xianyu = "/love/xianyu.php";
echo $filepath."中的文件名是:".basename($xianyu);
?>
/*
中的文件名是:xianyu.php
*/
Copier après la connexion

路径中目录部分快速获取:dirname()

使用 dirname() 函数,可以快速获取指定文件目录部分

<?php
$filepath = "/love/xianyu.php";
echo $filepath."中的路径部分是:". dirname($filepath);
?>
/*
/love/xianyu.php中的路径部分是:/love
*/
Copier après la connexion

目录操作


打开和关闭目录

句柄:

  • opendir() , closedir()

句柄可以被认为是一个返回值

Expliquons cette série de chemins séparément Représente le contenu
  • D :

    (faisant référence à la lettre du lecteur


  • Chemin relatif : Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHPLe chemin partant du répertoire où se trouve le fichier opéré

    • C'est un concept relatif, différentes références Les chemins correspondant aux objets écrits sont également différents

    • Pourquoi dites-vous cela
    Par exemple :

    Supposons que nous utilisions 1.png

    comme référence🎜🎜🎜Insérer description de l'image ici🎜🎜Insérer l'image ici Description🎜
    • 1.txt🎜🎜🎜🎜./1.txt (Il y a un point devant 1.)🎜🎜🎜
    • 2.txt🎜🎜🎜🎜 ../2.txt (deux points avant 2)🎜🎜🎜Expliquez-le🎜🎜
    • 1.txt Comme un fichier dans le même répertoire🎜, donc un seul point est nécessaire devant, ce point représente le répertoire actuel🎜
    • 2.txt sous la forme Répertoire inférieur🎜, 1.png est le répertoire supérieur de 2.txt🎜, les deux points ici représentent le répertoire supérieur🎜🎜🎜Je crois que vous avez déjà compris chemins relatifs et chemins absolus🎜🎜🎜🎜🎜 Obtention d'informations sur le chemin du fichier🎜🎜🎜🎜Avant de faire cela, nous devons comprendre certains concepts🎜🎜🎜🎜Path:🎜/love/xianyu . txt🎜🎜
      • Le nom du répertoire (dirname) est /love🎜
      • Avec l'extension de fichier (basename), c'est xianyu.txt🎜< li type="square">Le nom de l'extension (extension) est .txt🎜
      • Le nom du fichier (nom de fichier) est xianyu🎜🎜🎜🎜Entrez le texte ci-dessous🎜🎜🎜🎜🎜pathinfo()🎜 🎜🎜🎜 🎜Afin d'obtenir le chemin et le nom du fichier spécifiés par , vous pouvez utiliser la fonction pathinfo(), qui renverra un tableau associatif</ code>🎜🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;?php $dir = &quot;images&quot;; if($dir_handle = opendir($dir)) { echo &quot;获取目录句柄成功!&quot;; closedir($dir_handle); //记得释放句柄 } else { echo &quot;打开目录错误&quot;; } ?&gt;</pre><div class="contentsignin">Copier après la connexion</div></div>🎜 <a id="_90">🎜🎜🎜Obtenez rapidement le nom du fichier :<strong style="font-size: 18px;">basename()🎜🎜🎜🎜🎜🎜<code>basename() fonction , obtient rapidement la partie <code>nom du fichier du fichier spécifié sans lire le tableau🎜🎜
        <?php
        mkdir("123")
        ?>
        Copier après la connexion
        Copier après la connexion
        🎜🎜 🎜🎜Obtenez rapidement la partie répertoire du chemin : dirname()🎜🎜🎜🎜🎜Utilisez la fonction dirname() pour obtenir rapidement le <code>répertoire</ code> du fichier spécifié >Section 🎜🎜
        <?php
        rmdir("123")
        ?>
        Copier après la connexion
        Copier après la connexion
        🎜
        🎜🎜Opérations sur le répertoire 🎜🎜

        🎜

        🎜

        🎜Ouvrir et fermer les répertoires🎜🎜

        🎜Handle : 🎜🎜🎜🎜opendir(), closeir()🎜🎜🎜🎜🎜Le handle peut être considéré comme une valeur de retour Avec le handle. , vous pouvez opérer sur le répertoire ouvert🎜🎜
        <?php
        echo getcwd()
        ?>
        Copier après la connexion
        Copier après la connexion
        🎜🎜Ouvrez le répertoire des images🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜Relâchez la poignée🎜🎜🎜🎜Pourquoi devriez-vous relâcher la poignée si vous ne relâchez pas la poignée, c'est comme si vous et un groupe de personnes écriviez dans un cahier. Vous l'enlevez et ne le remettez pas. Les autres ne peuvent pas écrire, donc libérer le handle peut économiser les ressources du serveur🎜.

        创建目录

        <?php
        mkdir("123")
        ?>
        Copier après la connexion
        Copier après la connexion

        删除目录

        <?php
        rmdir("123")
        ?>
        Copier après la connexion
        Copier après la connexion

        获取当前工作目录

        <?php
        echo getcwd()
        ?>
        Copier après la connexion
        Copier après la connexion

        改变当前工作目录

        <?php
        echo getcwd() . &#39;<br>&#39;; // 显示当前目录
        chdir(&#39;hhh&#39;); //改变当前目录
        echo getcwd() . &#39;<br>&#39;; // 显示当前目录
        ?>
        Copier après la connexion

        获取目录句柄条目

        • readdir()

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

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

        <?php
        if ($handle = opendir(&#39;.&#39;)) {
        while (false !== ($file = readdir($handle))) {
        echo "$file\n";
        }
        closedir($handle);
        }
        ?>
        Copier après la connexion

        Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHP

        读取目录条目

        • scandir()

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

        <?php
        $dir1 = scandir("D:\新建文件夹 (2)");
        $dir2 = scandir("D:\新建文件夹 (2)",1);//降序排列
        print_r($dir1);
        print_r($dir2)
        ?>
        Copier après la connexion

        Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHP

        Cet article vous guidera à travers les opérations sur les fichiers et les répertoires en PHP

        文件操作


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

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

        一般操作

        判断文件是否存在

        <?php
        if(file_exists("test.txt"))
        {
        //如果文件存在就执行操作
        }
        ?>
        //如果文件存在返回true,不存在返回false
        Copier après la connexion

        创建,打开,关闭文件

        • 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()
        ?>
        Copier après la connexion

        读取文件

        • 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)
        ?>
        Copier après la connexion

        写入文件

        • 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()函数写入的内容")
        ?>
        Copier après la connexion

        文件和目录基本操作

        删除文件

        • unlink()

        <?php
        $file = "temp.txt";
        unlink($file);
        ?>
        Copier après la connexion

        复制文件

        • copy()

        <?php
        $sourceFile = "html/cache.txt"; //被复制的文件必须确保存在
        $targetFile = "html/copyCache.txt";
        copy($sourceFile, $targetFile)
        ?>
        Copier après la connexion

        移动,重命名文件或目录

        • 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");
        ?>
        Copier après la connexion

        推荐学习:《PHP视频教程

        Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal