php目录函数操作,以及使用递归

  • opendir
  1. 找到对应的目录
  2. 将目录中所有文件全部读入到内存(包含子文件夹下的所有文件)
  3. 将目录指针指向第一个文件
  • readdir
  1. 读取当前指针所指向的文件的文件名 
  2.  2.将目录指针向下移动一位
  • chdir
  1. 改变当前操作目录,代表进入到目标目录

$masterdir = "C:\\Program Files";
function openmydirs($masterdir)
{
    if (is_dir($masterdir))
    {
        $o = opendir($masterdir);
        while($saiwa = readdir($o))
        {
            if ($saiwa=="." or $saiwa=="..")
            {
                continue;
            }
            $wholepath = $masterdir."\\".$saiwa;
       //这行代码如此重要,因为我们必须拼接出一个完整的路径,才能在下面调用is_dir,chdir等和目录操作有关的函数
if(count($myarray)==3) { echo substr($myarray[2],0,2).":"."\n"; } if (is_dir($wholepath)) { chdir($wholepath); openmydirs($wholepath); } echo $wholepath."\n"; } } }

 

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/12/19 0019
 * Time: 上午 1:22
 */
$masterdir = "D:\\2,PHP高级核心";
echo strpos($masterdir,"\\",3)."\n";
$storepath = "E:\\mycourse.txt";
$fetarray = array();
function openmydirs($masterdir,$handle)
{
    global $fetarray;
    if (is_dir($masterdir))
    {
        $o = opendir($masterdir);
        while($saiwa = readdir($o))
        {
            if ($saiwa=="." or $saiwa=="..")
            {
                continue;
            }
            $wholepath = $masterdir."\\".$saiwa;
            $myarray = explode("\\",$wholepath);
            if(count($myarray)==3)
            {
                fwrite($handle,substr($myarray[2],0,2).":"."\r\n") ;
            }

            if (is_dir($wholepath))
            {
                chdir($wholepath);
                openmydirs($wholepath,$handle);
            }
            if (is_file($wholepath))
            {
                if(strrpos($wholepath,".wmv")>0)
                {
                    fwrite($handle,substr($wholepath,strrpos($wholepath,"\\")+1,strrpos($wholepath,".wmv"))."\r\n") ;
                }

            }
            //echo $wholepath."\n";
        }
    }
}
//$myarray=openmydirs($masterdir);
$handle = fopen($storepath,'a');
openmydirs($masterdir,$handle);
fclose($handle);
?>

 

posted @ 2018-12-19 02:35  saintdingtheGreat  阅读(210)  评论(0编辑  收藏  举报