PHP面试题之文件目录操作
这道题其实并不难,考点主要在函数substr()strrchr() array_pop() strrpos()strpos()strrev()explode() pathinfo()。
废话不多说了,直接给大家贴代码了。
获取文件后缀,遍历目录层次
/**
*5种方式获取文件后缀名
*这道题其实就是考函数substr()strrchr()array_pop()strrpos()strpos()strrev()explode()pathinfo()
*@paramstring$filename要处理的文件名1.jpg/1.png/1.html/1.php
*@returnstring.php/php
*/
functionget_ext1($filename)
{
returnstrrchr($filename,'.');
}
functionget_ext2($filename){
returnsubstr($filename,strrpos($filename,'.'));
}
functionget_ext3($filename){
returnarray_pop(explode('.',$filename));
}
functionget_ext4($filename){
returnpathinfo($filename,PATHINFO_EXTENSION);
}
functionget_ext5($filename){
returnstrrev(substr(strrev($filename),0,strpos(strrev($filename),'.')));
}
$filename="1.php";
echoget_ext1($filename)."\n";
echoget_ext2($filename)."\n";
echoget_ext3($filename)."\n";
echoget_ext4($filename)."\n";
echoget_ext5($filename)."\n";
/**
*遍历目录(递归)
*@paramstring$dir目录名且最后没有/
*@returnarray$files整个目录结构
*/
functionmyScandir($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));
以上代码是不是很简单啊,就这几个函数,函数掌握了,这道题就很容易的解决了,希望本文分享对大家有所帮助。