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 相关文章推荐
推荐一篇入门级的Class文章
Mar 19 PHP
php不用正则采集速度探究总结
Mar 24 PHP
PHP获取文件绝对路径的代码(上一级目录)
May 29 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
PHP中的traits简单使用实例
May 13 PHP
php使用文本统计访问量的方法
May 12 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
用来给图片加水印的PHP类
2008/04/09 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
vue-axios使用详解
2017/05/10 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
理解Python中的类与实例
2015/04/27 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
使用python为mysql实现restful接口
2018/01/05 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
Python爬虫获取图片并下载保存至本地的实例
2018/06/01 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
Python sorted对list和dict排序
2020/06/09 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
自考毕业生自我鉴定
2013/11/04 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
家长通知书家长意见
2014/12/30 职场文书
大学团日活动总结书
2015/05/11 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
Python开发五子棋小游戏
2022/04/28 Python