PHP面试题之文件目录操作


Posted in PHP onOctober 15, 2015

这道题其实并不难,考点主要在函数substr() strrchr()  array_pop()  strrpos() strpos() strrev() explode()  pathinfo()。

废话不多说了,直接给大家贴代码了。

获取文件后缀,遍历目录层次

/**
* 5种方式获取文件后缀名
* 这道题其实就是考函数substr() strrchr() array_pop() strrpos() strpos() strrev() explode() pathinfo()
* @param string $filename 要处理的文件名 1.jpg/1.png/1.html/1.php
* @return string .php/php 
*/
function get_ext1($filename)
{
    return strrchr($filename,'.');
}
function get_ext2($filename){
    return substr($filename,strrpos($filename,'.'));
}
function get_ext3($filename){
    return array_pop(explode('.',$filename));
}
function get_ext4($filename){
    return pathinfo($filename,PATHINFO_EXTENSION);
}
function get_ext5($filename){
    return strrev(substr(strrev($filename),0,strpos(strrev($filename),'.')));
}
$filename = "1.php";
echo get_ext1($filename)."\n";
echo get_ext2($filename)."\n";
echo get_ext3($filename)."\n";
echo get_ext4($filename)."\n";
echo get_ext5($filename)."\n";
/**
* 遍历目录(递归)
* @param string $dir 目录名且最后没有/
* @return array $files 整个目录结构
*/
function myScandir($dir)
{
    $files = array();
    if($handle = opendir($dir)){
        while (($file = readdir($handle)) != false){
            if($file != "." && $file != ".."){
                $newDir = $dir."/".$file;
                if(is_dir($newDir)){
                    $files[$file] = myScandir($newDir);
                }else{
                    $files[] = $file;
                }
            }
        }
        closedir($handle);
        return $files;
    }
}
$dir = "/dirname";
print_r(myScandir($dir));

以上代码是不是很简单啊,就这几个函数,函数掌握了,这道题就很容易的解决了,希望本文分享对大家有所帮助。

PHP 相关文章推荐
用ADODB来让PHP操作ACCESS数据库的方法
Dec 31 PHP
PHP 程序授权验证开发思路
Jul 09 PHP
php 获取客户端的真实ip
Nov 30 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
PHP使用QR Code生成二维码实例
Jul 07 PHP
php cli配置文件问题分析
Oct 15 #PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
Oct 15 #PHP
10个php函数实用却不常见
Oct 13 #PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 #PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
Oct 13 #PHP
JavaScript与HTML结合的基本使用方法整理
Oct 12 #PHP
apache和PHP如何整合在一起
Oct 12 #PHP
You might like
php基于GD库画五星红旗的方法
2015/02/24 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
2016/01/05 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
javascript连续赋值问题
2015/07/08 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Django发送html邮件的方法
2015/05/26 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
python实现扫描ip地址的小程序
2019/04/16 Python
python pandas模块基础学习详解
2019/07/03 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
白色公司:The White Company
2017/10/11 全球购物
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
人事部专员岗位职责
2014/03/04 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
Python Parser的用法
2021/05/12 Python