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中实现图片的锐化
Oct 09 PHP
文章推荐系统(三)
Oct 09 PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 PHP
Linux中为php配置伪静态
Dec 17 PHP
php+mysql删除指定编号员工信息的方法
Jan 14 PHP
ThinkPHP路由详解
Jul 27 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
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二维数组去重算法
2016/12/17 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
JavaScript交换变量的常用方法小结【4种方法】
2020/05/07 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
Python 制作糗事百科爬虫实例
2016/09/22 Python
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
Python3 replace()函数使用方法
2018/03/19 Python
python实现textrank关键词提取
2018/06/22 Python
Python中一些深不见底的“坑”
2019/06/12 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
Python运行异常管理解决方案
2020/03/09 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
Python 存取npy格式数据实例
2020/07/01 Python
详解python 内存优化
2020/08/17 Python
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
以太网Ethernet IEEE802.3
2013/08/05 面试题
机电专业大学生求职信
2013/10/04 职场文书
幼儿园教师辞职信
2014/01/18 职场文书
应急管理培训方案
2014/06/12 职场文书
面试感谢信范文
2015/01/22 职场文书
刑事辩护词范文
2015/05/21 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
opencv读取视频并保存图像的方法
2021/06/04 Python