PHP面試題之文件目錄操作
這道題其實(shí)并不難,考點(diǎn)主要在函數(shù)substr() strrchr() array_pop() strrpos() strpos() strrev() explode() pathinfo()。
廢話不多說了,直接給大家貼代碼了。
獲取文件后綴,遍歷目錄層次
/** * 5種方式獲取文件后綴名 * 這道題其實(shí)就是考函數(shù)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 整個目錄結(jié)構(gòu) */ 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));
以上代碼是不是很簡單啊,就這幾個函數(shù),函數(shù)掌握了,這道題就很容易的解決了,希望本文分享對大家有所幫助。
相關(guān)文章
PHP執(zhí)行l(wèi)inux命令常用函數(shù)匯總
一般情況下,很少會用php去執(zhí)行l(wèi)inux命令,不過特殊情況下,你也許會用到這些函數(shù)。以前我知道有二個函數(shù)可以執(zhí)行l(wèi)inux命令,一個是exec,一個是shell_exec,通過本文給大家介紹PHP執(zhí)行l(wèi)inux命令常用函數(shù)匯總,需要的朋友參考下2016-02-02thinkPHP訂單數(shù)字提醒功能的實(shí)現(xiàn)方法
這篇文章主要介紹了thinkPHP訂單數(shù)字提醒功能的實(shí)現(xiàn)方法,涉及thinkPHP數(shù)據(jù)庫查詢、遍歷及前臺顯示相關(guān)功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-12-12Laravel基礎(chǔ)_關(guān)于view共享數(shù)據(jù)的示例講解
今天小編就為大家分享一篇Laravel基礎(chǔ)_關(guān)于view共享數(shù)據(jù)的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10Zend Framework實(shí)現(xiàn)多服務(wù)器共享SESSION數(shù)據(jù)的方法
這篇文章主要介紹了Zend Framework實(shí)現(xiàn)多服務(wù)器共享SESSION數(shù)據(jù)的方法,詳細(xì)分析了SESSION數(shù)據(jù)共享的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03PHP用FTP類上傳文件視頻等的簡單實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狿HP用FTP類上傳文件視頻等的簡單實(shí)現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09詳解WordPress開發(fā)中過濾屬性以及Sql語句的函數(shù)使用
這篇文章主要介紹了WordPress開發(fā)中過濾屬性以及Sql語句的函數(shù)使用,分別是對esc_attr()函數(shù)和esc_sql()函數(shù)的講解,需要的朋友可以參考下2015-12-12