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 危险函数解释 分析
Apr 22 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
PHP分享图片的生成方法
Apr 25 PHP
php微信公众号开发之快递查询
Oct 20 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 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的面试题集
2006/11/19 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
javascript 面向对象继承
2009/11/26 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
Python随机生成手机号、数字的方法详解
2017/07/21 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
如何写你的创业计划书
2014/01/07 职场文书
消防安全承诺书
2014/05/22 职场文书
银行求职信怎么写
2014/05/26 职场文书
岗位说明书标准范本
2014/07/30 职场文书
python开发的自动化运维工具ansible详解
2021/08/07 Python
Python学习之包与模块详解
2022/03/19 Python
解决xampp安装后Apache无法启动
2022/03/21 Servers
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫