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 相关文章推荐
关于PHP5 Session生命周期介绍
Mar 02 PHP
php上的memcache和memcached两个pecl库
Mar 29 PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 PHP
yii实现创建验证码实例解析
Jul 31 PHP
PHP实现的增强性mhash函数
May 27 PHP
PHP中addcslashes与stripcslashes函数用法分析
Jan 07 PHP
PHP实现linux命令tail -f
Feb 22 PHP
PDO::query讲解
Jan 29 PHP
ThinkPHP5.0框架结合Swoole开发实现WebSocket在线聊天案例详解
Apr 02 PHP
利用ajax+php实现商品价格计算
Mar 31 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
PHPMailer邮件发送的实现代码
2013/05/04 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
python实现大学人员管理系统
2019/10/25 Python
法学专业个人求职信
2013/09/26 职场文书
感恩之星事迹材料
2014/05/03 职场文书
python基础之文件处理知识总结
2021/05/23 Python
webpack的移动端适配方案小结
2021/07/25 Javascript
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python
服务器间如何实现文件共享
2022/05/20 Servers