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
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
php实现的一个很好用HTML解析器类可用于采集数据
Sep 23 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
PHP重置数组为连续数字索引的几种方式总结
Mar 12 PHP
Laravel实现短信注册的示例代码
May 29 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
php探针使用原理和技巧讲解
Sep 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
php流量统计功能的实现代码
2012/09/29 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
使用Sphinx对索引进行搜索
2013/06/25 PHP
php多重接口的实现方法
2015/06/20 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
初识SmartJS - AOP三剑客
2014/06/08 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
confirm确认对话框的实现方法总结
2016/06/17 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
怎样声明一个匿名的内部类
2016/06/01 面试题
会计专业毕业生求职信分享
2014/01/03 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
摄影展策划方案
2014/06/02 职场文书
交通安全月活动总结
2015/05/08 职场文书
婚宴父母致辞
2015/07/27 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书