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 17 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
PHP读取大文件的多种方法介绍
Apr 04 PHP
示例详解Laravel重置密码代码重构
Aug 10 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
php+js实现点赞功能的示例详解
Aug 07 PHP
php png失真的原因及解决办法
Nov 17 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自定义urlencode,urldecode函数实例
2015/03/24 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
python with语句的原理与用法详解
2020/03/30 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
工程项目经理岗位职责
2013/12/15 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
辞职信格式模板
2015/02/27 职场文书
基石观后感
2015/06/12 职场文书
小学教育见习总结
2015/06/23 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
2019消防宣传标语!
2019/07/10 职场文书
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL