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.2时间相差8小时
Jan 15 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
学习php笔记 字符串处理
Oct 19 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
php结合curl实现多线程抓取
Jul 09 PHP
php链表用法实例分析
Jul 09 PHP
分享3个php获取日历的函数
Sep 25 PHP
php cookie 详解使用实例
Nov 03 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
php json转换相关知识(小结)
Dec 21 PHP
PHP高并发和大流量解决方案整理
Dec 24 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的memcache类分享(memcache队列)
2014/03/26 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
JavaScript 异步调用
2017/10/25 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
哥伦比亚最大的网上商店:Linio哥伦比亚
2016/09/25 全球购物
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
全球性的女装店:storets
2019/06/12 全球购物
新浪网技术部笔试题
2016/08/26 面试题
模具专业毕业生自荐书范文
2014/02/19 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
二年级数学教学反思
2016/02/16 职场文书
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS