您现在的位置是:群英 > 开发技术 > PHP语言
PHP中获取目录中文件名有什么方法呢
Admin发表于 2022-09-19 17:57:58723 次浏览
这篇文章给大家分享的是“PHP中获取目录中文件名有什么方法呢”,文中的讲解内容简单清晰,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下“PHP中获取目录中文件名有什么方法呢”吧。

我们已经了解了在PHP中怎样去打开和关闭目录,在关闭目录之前会对目录进行操作,其中常用到的操作就有获取目录中的文件和文件夹。

也就是说,想要了解怎样去获取目录中的文件的话,首先还是得会打开和关闭目录,因此opendir() 函数和closedir()函数还不了解的可以点击上方的连接进行学习。下面我们就来看一下PHP中怎样才能完成目录下文件的获取吧。

我们在PHP中可以通过readdir()函数和scandir()函数来完成获取目录中文件名的操作。

readdir()函数获取文件中的下一个文件名

readdir()函数是一个简单的操作,说它简单是因为当函数执行成功之后,它能够返回通过opendir()函数打开目录中的一个文件或者目录名称;如果函数没有执行成功,返回的结果就是flase

readdir()函数的基本语法格式如下:

readdir([resource $dir_handle])

其中需要注意的是:$dir_handle 是个可选参数,当填写时,表示的就是通过opendir()函数打开的目录参数。

接下来我们通过示例来看一下readdir()函数的使用,示例如下:

<?php
    $dir = 'D:';
    if(is_dir($dir)){
        $info = opendir($dir);
        $file = readdir($info);
        echo $file.'<br>';
        closedir($info);
    }
?>

输出结果:

上述示例中这种写法一般是不会用到的,一般想要通过readdir()函数获取所有的目录下的文件,需要通过while循环来进行获取,示例如下:

<?php
    $dir = 'D:';
    if(is_dir($dir)){
        $info = opendir($dir);
        while (($file = readdir($info)) !== false) {
            echo $file.'<br>';
        }
        closedir($info);
    }
?>

输出结果:

如此我们便通过readdir()函数与while循环配合完成了对目标目录中文件名的获取。这就是readdir()函数的应用,接下来我们看一下另外一种方法,也就是scandir()函数。

scandir()函数,数组形式返回目录文件名

上文中我们了解了readdir()函数可以获取目标目录内的文件名,其中配合while循环可以简单直接的得到目录下的文件或者目录名。接下来要说的scandir()函数与readdir()函数有一些不同。

  • readdir()函数一次只能返回一个文件名,但是scandir()函数执行成功之后能够返回目标目录内所有的文件名和目录名;

  • readdir返回的结果直接就是文件的名称,scandir的返回结果也是文件的名称但是是以数组的形式返回的结果;

  • readdir函数没有执行成功的话返回的结果是flase,scandir函数没有执行成功时返回的加过也是flase但是同时也会有错误信息。

下面我们来看一下scandir()函数的基本语法,示例如下:

scandir(string $directory[, int $sorting_order[, resource $context]])

其中需要注意的是:$directory表示要读取的目录;当$sorting_order的参数设置为SCANDIR_SORT_DESCENDING 或者 1的时候,返回的结果也就是文件名,它们的排列顺序是按着字母降序排列。当$sorting_order的参数设置为SCANDIR_SORT_NONE的时候,返回的结果就是未排列的结果,其中这个参数是个可选参数。

接下来我们通过示例来看一下scandir()函数的应用,示例如下:

<?php
    $dir = 'D:\phpstudy_pro\WWW';
    if(is_dir($dir)){
        $arr1 = scandir($dir);
        $arr2 = scandir($dir, 1);
    }
    echo "<pre>";
    print_r($arr1);
    print_r($arr2);
?>

上述示例中,目的是想要通过scandir()函数来获取目录路径为“D:\phpstudy_pro\WWW”的目录内文件名,然后通过不同的参数来实现不同的字母顺序排列,输出结果如下:

通过上述示例就能够看出scandir()函数能够通过数组的形式返回目标目录中的文件名,并且函数内$sorting_order的参数不同返回结果的排序也就不同。


到此这篇关于“PHP中获取目录中文件名有什么方法呢”的文章就介绍到这了,感谢各位的阅读,更多相关PHP中获取目录中文件名有什么方法呢内容,欢迎关注群英网络资讯频道,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: php
相关信息推荐
2022-10-11 09:22:56 
摘要:Java8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据,下面这篇文章主要给大家介绍了关于Java8 Stream流的常用方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
2021-11-05 17:24:49 
摘要:这篇文章给大家分享的是用PHP做99乘法表的内容,下文将给介绍几种实现99乘法表的方式,示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
2022-11-30 17:55:28 
摘要:php exec无法执行的解决办法:1、找到php配置文件php.ini,在文件里搜索“disable_functions”,并把“exec”和“shell_exec”去掉;2、到服务器修改文件权限;3、修改配置中的安全模式为“safe_mode=On”。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部