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));
以上代码是不是很简单啊,就这几个函数,函数掌握了,这道题就很容易的解决了,希望本文分享对大家有所帮助。