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 !
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
Le chemin absolu de cette image est
D:Google1231.png
D:谷歌1231.png
我们来分开讲解一下这一串路径代表的内容
相对路径:以操作的文件所在的目录为起点的路径
这是一个
相对的概念
,不同的参照物写的所对应的路径也不相同
为什么这么说的
举个例子吧:
假设我们以 1.png作为参照物
./1.txt
(1前面有个 点.)
../2.txt
(2前面两个点)
解释一下吧
相信大家已经了解了相对路径和绝对路径
在这之前我们需要先理解一些概念
路径:
/love/xianyu.txt
下面进入正文
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 */
了
basename()
函数,快速获取指定文件
的文件名
部分,不用从数组
中读取
<?php $xianyu = "/love/xianyu.php"; echo $filepath."中的文件名是:".basename($xianyu); ?> /* 中的文件名是:xianyu.php */
使用
dirname()
函数,可以快速获取指定文件
的目录
部分
<?php $filepath = "/love/xianyu.php"; echo $filepath."中的路径部分是:". dirname($filepath); ?> /* /love/xianyu.php中的路径部分是:/love */
句柄:
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 : Le chemin partant du répertoire où se trouve le fichier opéréPar exemple :
- C'est un
Pourquoi dites-vous celaconcept relatif
, différentes références Les chemins correspondant aux objets écrits sont également différentsSupposons que nous utilisions 1.png
comme référence🎜🎜🎜🎜🎜🎜
- 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 untableau associatif</ code>🎜🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;"><?php $dir = "images"; if($dir_handle = opendir($dir)) { echo "获取目录句柄成功!"; closedir($dir_handle); //记得释放句柄 } else { echo "打开目录错误"; } ?></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 letableau
🎜🎜🎜🎜 🎜🎜Obtenez rapidement la partie répertoire du chemin : dirname()🎜🎜🎜🎜🎜Utilisez la fonction<?php mkdir("123") ?>Copier après la connexionCopier après la connexiondirname()
pourobtenir rapidement le <code>répertoire</ code> du fichier spécifié
>Section 🎜🎜🎜🎜🎜Opérations sur le répertoire 🎜🎜<?php rmdir("123") ?>Copier après la connexionCopier après la connexion🎜
🎜🎜Ouvrir et fermer les répertoires🎜🎜
🎜Handle : 🎜🎜🎜🎜opendir(), closeir()🎜🎜🎜🎜🎜Le handle peut être considéré comme unevaleur de retour
Avec le handle. , vous pouvez opérer sur le répertoire ouvert🎜🎜🎜🎜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 echo getcwd() ?>Copier après la connexionCopier après la connexion创建目录
<?php mkdir("123") ?>Copier après la connexionCopier après la connexion删除目录
<?php rmdir("123") ?>Copier après la connexionCopier après la connexion获取当前工作目录
<?php echo getcwd() ?>Copier après la connexionCopier après la connexion改变当前工作目录
<?php echo getcwd() . '<br>'; // 显示当前目录 chdir('hhh'); //改变当前目录 echo getcwd() . '<br>'; // 显示当前目录 ?>Copier après la connexion获取目录句柄条目
readdir()
将一个参数名作为参数传递给函数
readdir()
,这个函数能返回目录下所有子目录和文件
注意:调用一次返回一个!!
<?php if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { echo "$file\n"; } closedir($handle); } ?>Copier après la connexion读取目录条目
scandir()
直接返回
指定目录下
的文件和子目录
,并且按照要求排序(默认字母升序)
<?php $dir1 = scandir("D:\新建文件夹 (2)"); $dir2 = scandir("D:\新建文件夹 (2)",1);//降序排列 print_r($dir1); print_r($dir2) ?>Copier après la connexion文件操作
操作文件的一般步骤即:打开,读取或写入,关闭
由于目录和文件
本质上都属于文件
,除了使用函数不同,很多操作都是相通的判断文件是否存在
<?php if(file_exists("test.txt")) { //如果文件存在就执行操作 } ?> //如果文件存在返回true,不存在返回falseCopier 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('test.txt', 'rename.txt') //将test.txt文件重命名为rename.txt rename('test','rename') //将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!