Maison >développement back-end >tutoriel php >Opérations sur les fichiers et répertoires PHP
Cet article présente principalement les opérations sur les fichiers et les répertoires PHP, impliquant les compétences opérationnelles de PHP liées à la traversée, au jugement et au tri des fichiers et des répertoires. Il y a des instructions plus détaillées dans les commentaires. Les amis dans le besoin peuvent s'y référer
. Les exemples de cet article décrivent les opérations sur les fichiers et répertoires PHP. Partagez-le avec tout le monde pour votre référence, comme suit :
Fonctions liées au répertoire de fichiers
<?php // 输出目录中的文件 function outputcurfiles ($allowedtypes, $thedir){ //首先,我们确保目录存在。 if (is_dir ($thedir)){ //现在,我们使用scandir扫描目录中的文件。 $scanarray = scandir ($thedir); //接着我们开始解析数组。 //scandir()用“.”和“..”统计文件导航列表 //因此作为文件,我们不应该列出他们。 for ($i = 0; $i < count ($scanarray); $i++){ if ($scanarray[$i] != "." && $scanarray[$i] != ".."){ //现在,进行检查,以确保这是一个文件,而不是一个目录。 if (is_file ($thedir . "/" . $scanarray[$i])){ //现在,因为我们将允许客户端编辑这个文件, //我们必须检查它是否是可读和可写。 if (is_writable ($thedir. "/" . $scanarray[$i]) && is_readable($thedir . "/" . $scanarray[$i])){ //现在,我们检查文件类型是否存在于允许的类型数组中. $thepath = pathinfo ($thedir . "/" . $scanarray[$i]); if (in_array ($thepath['extension'], $allowedtypes)){ //如果文件符合规定,我们可以继续输出. echo $scanarray[$i] . "<br />"; } } } } } } else { echo "对不起,这个目录不存在."; } } $allowedtypes = array ("txt","html"); outputcurfiles ($allowedtypes, "testfolder"); /////////////////////////////////////////////////// function recurdir ($thedir) { //First attempt to open the directory. try { if ($adir = opendir ($thedir)){ //扫描目录。 while (false !== ($anitem = readdir ($adir))){ //不统计目录中包含“.”或“..”的情况 if ($anitem != "." && $anitem != ".."){ //此时如果是一个目录,则缩进一点 //再去递归 if (is_dir ($thedir . "/" . $anitem)){ ?><span style="font-weight: bold;" mce_style="font-weight: bold;"><?php echo $anitem; ?></span><?php ?><p style="margin-left: 10px;" mce_style="margin-left:10px;"><?php recurdir ($thedir . "/" . $anitem ); ?></p><?php } elseif (is_file ($thedir . "/" . $anitem)){ //此时输出文件. echo $anitem . "<br />"; } } } } else { throw new exception ("Sorry, directory could not be openend."); } } catch (exception $e) { echo $e->getmessage(); } } echo "<br />/////////////////////////////////////<br /><br />"; recurdir("testfolder"); ////////////////////////////////////////////////////////////////// echo "<br />/////////////////////////////////////<br /><br />"; function sortfilesbydate ($thedir){ //首先,需要确保目录存在。 if (is_dir ($thedir)){ //接着,我们使用scandir扫描此目录中的文件. $scanarray = scandir ($thedir); $finalarray = array(); //然后开始解析数组 //scandir()用“.”和“..”统计文件导航列表 //因此作为文件,我们不应该列出他们. for ($i = 0; $i < count ($scanarray); $i++){ if ($scanarray[$i] != "." && $scanarray[$i] != ".."){ //现在,我们检查,以确保这是一个文件,而不是一个目录. if (is_file ($thedir . "/" . $scanarray[$i])){ //现在需要做的是循环数据到一个关联数组. $finalarray[$thedir . "/" . $scanarray[$i]] = filemtime ($thedir . "/" . $scanarray[$i]); } } } //至此,我们已经遍历了整个数组,现在需要做的只是asort()它。 asort ($finalarray); return ($finalarray); } else { echo "对不起,这个目录不存在."; } } //然后,我们将函数指向我们需要查看的目录. $sortedarray = sortfilesbydate ("testfolder"); //至此,就可以按照如下形式输出: while ($element = each ($sortedarray)){ echo "File: " . $element['key'] . " was last modified: " . date ("F j, Y h:i:s", $element['value']) . "<br />"; } ?>
Ce qui précède est cet article L'intégralité du contenu, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
phpRépertoire de fichiersProcessus de développement d'opérations et partage d'exemples
Tutoriel sur la façon de parcourir le répertoire de fichiers en php
fonction php chmod() et modification par lots du fichier répertoire Autorisations
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!