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 相关文章推荐
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
Dec 13 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
Jun 02 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
php遍历文件夹和文件列表示例分享
Mar 11 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 PHP
php批量删除cookie的简单实现方法
Jan 26 PHP
php将12小时制转换成24小时制的方法
Mar 31 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
PHP实现文字写入图片功能
Feb 18 PHP
PHP执行系统命令函数实例讲解
Mar 03 PHP
PHP高并发和大流量解决方案整理
Mar 09 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使用类继承解决代码重复的问题
2015/02/11 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
如何在PHP中使用数组
2020/06/09 PHP
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
本地对象Array的原型扩展实现代码
2010/12/04 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
Javascript让DEDECMS告别手写Tag
2014/09/01 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
vue工程全局设置ajax的等待动效的方法
2019/02/22 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
python机器人行走步数问题的解决
2018/01/29 Python
python使用folium库绘制地图点击框
2018/09/21 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
浅析Python迭代器的高级用法
2020/07/16 Python
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
大学班长的职责
2014/01/27 职场文书
田径运动会开幕式及主持词
2014/03/28 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
2014年师德承诺书
2014/05/23 职场文书
工厂员工辞职信范文
2015/05/12 职场文书