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 相关文章推荐
一个MYSQL操作类
Nov 16 PHP
PHP5 操作MySQL数据库基础代码
Sep 29 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
Apr 26 PHP
基于php iconv函数的使用详解
Jun 09 PHP
深入PHP curl参数的详解
Jun 17 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
你应该知道PHP浮点数知识
May 13 PHP
利用switch语句进行多选一判断的实例代码
Nov 14 PHP
yii2 resetful 授权验证详解
May 18 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
Sep 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
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
parentElement,srcElement的使用小结
2014/01/13 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
理解AngularJs指令
2015/12/10 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
python实现调用其他python脚本的方法
2014/10/05 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
代码分析Python地图坐标转换
2018/02/08 Python
python递归全排列实现方法
2018/08/18 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
Python更换pip源方法过程解析
2020/05/19 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
视图的作用
2014/12/19 面试题
护士自我鉴定范文
2013/10/06 职场文书
个人思想理论学习的自我鉴定
2013/11/30 职场文书
村委会贫困证明
2014/01/14 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
企业计划生育责任书
2015/05/09 职场文书