回覆列表
  • 1 # 程式設計師小助手

    學習時間

    我們說PHP是一個函式庫毫不為過,因為針對各種功能,它都封裝了許多內建的函式,拿來用就可以了。而檔案目錄操作函式,我們推薦使用glob。

    該函式的引數形式:

    array glob( string $pattern[, int $flags = 0] )

    用於尋找與模式匹配的檔案路徑。使用起來程式碼應該是這樣的:

    邏輯大概就是這樣子。在Linux作業系統下,上面的模式掃描不出來隱藏檔案。如果要把隱藏檔案掃描出來,需要修改一下匹配模式如下:

    遍歷和檔案型別判斷邏輯相同。

    極簡主義

    我們知道解決問題,不會是一種單一的辦法,我們總是有很多方式實現同樣的需求。那麼對於上述的程式碼,對於強迫症同學來說,還是寫的有些拖沓了,要是一行能搞定就好了。

    真的可以一樣搞定。我們藉助於PHP的內建函式遍歷操作函式 array_map 可以輕鬆實現。程式碼如下:

    把 glob 函式的返回值使用 (array) 進行強制型別轉換,是為了防止出現返回 false,不能直接傳遞到 array_filter 進行過濾的緣故。

    面向物件

    寫慣了JAVA的同學應該對類庫的方法操作嚴重依賴不能自拔,PHP也是有配套OOP方法的,只是我們用的太少,沒有系統地學習罷了。下面提貼出來一個 OOP 風格的程式碼來解決這個問題。

    不做解釋,因為用的太少。為什麼?因為看看 $di $ri 物件例項的操作,還有最後 rmdir unlink 的函式操作,你終究明白,要做到真正的面向物件,還差得遠呢!

    共同努力吧~~

    寫在最後

    很令人傷心,本想提供一個OOP的實現,還是被迫用了函式方法,我們已經盡力了。整體而言,函式操作和函式操作,更適合PHP流程處理。

    Happy coding :_)

  • 中秋節和大豐收的關聯?
  • 如何用“我愛你,可我們用遠不能在一起。”寫小說?