小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

PHP教程(7)文本操作+文件夾遍歷+遞歸文件夾操作

 知識書館 2022-07-17 發(fā)布于廣東

回顧

數(shù)組:跟字符串轉(zhuǎn)換,運算(+,合并,比較),驗證碼

var_dump($結(jié)果);exit;

瀏覽器與服務(wù)器的交互

         瀏覽器傳值:表單(GETPOST)和URL

         服務(wù)器接收:$_GET$_POST,$_REQUEST

文件上傳:數(shù)據(jù)流(字符流和二進制流)

         條件:服務(wù)器允許,瀏覽器也能上傳(表單域和enctype=”multipart/form-data”

         文件移動:move_uploaded_file(臨時文件目錄,指定存儲路徑(帶文件名))

         $path = “./uploads/”;

         $path . '//’ . $name;         //./uploads/programmer.gif


文件夾操作

1.      什么是文件操作?

磁盤上用戶能看到的邏輯數(shù)據(jù)結(jié)構(gòu)(文件夾和文件)

對文件的增刪改查

2.      為什么要有文件操作?

當程序需要為某些特定操作進行文件夾或者文件處理的時候,都會應(yīng)用到文件操作。

文件上傳的時候創(chuàng)建目錄;下載文件的時候讀取內(nèi)容;日志分析的時候讀取內(nèi)容

文件夾操作

文件夾不屬于php本身,php要去操作文件夾,通過資源的形式進行操作。

1.      建立連接。獲取文件資源。

opendir(路徑):打開一個路徑資源(將路徑內(nèi)部的所有數(shù)據(jù)讀入到內(nèi)存)

2.      獲取文件夾資源里面的文件:文件名

readdir(路徑資源):從文件夾資源中讀取當前資源指針所指向的文件的名字,指針會向下移動一位

3.      釋放資源

closedir(資源):釋放對應(yīng)的文件資源

遍歷文件夾

將文件夾資源內(nèi)部的所有文件給遍歷出來。利用readdir能夠讀取元素,并且下移指針的過程,配合如果指針移出資源,返回的是false來進行循環(huán)遍歷。

結(jié)果集指針回位

rewinddir(資源)

函數(shù)遍歷文件夾

scandir(路徑):讀取一個路徑內(nèi)部的所有文件名,返回一個數(shù)組,數(shù)組的每一個元素都是文件名。

文件夾操作相關(guān)函數(shù)

file_exists:判斷一個文件是否存在(文件是廣義:路徑和文件)

is_dir:判斷一個指定路徑是否存在(文件夾)

is_file:判斷一個指定路徑是否是文件(文件)

mkdir:創(chuàng)建一個路徑,如果路徑存在就會報錯

rmdir:移除文件夾

注意:文件夾的刪除只能刪除空文件夾,不能刪除有文件的文件夾(...除外)

getcwd:獲取當前工作路徑

chdir:改變當前工作路徑

作業(yè):將文件上傳做成按月日時分,分類管理

思路:判斷當前年月日時分秒這樣的路徑是否存在,不存在創(chuàng)建,存在將將文件放進去

。

遍歷所有文件及其子目錄

遍歷一個文件夾內(nèi)的所有文件的同時,如果其文件是目錄,那么也需要遍歷出來。

1.      定義一個函數(shù):獲取當前指定目錄下面的所有文件

2.      先取出當前文件夾內(nèi)的所有文件

3.      將取出的文件數(shù)組遍歷輸出

4.      修改判斷邏輯:所有的文件的判斷,都必須配合路徑。

5.      如果文件結(jié)果是文件夾:說明有子文件,重新遍歷獲取里面的所有內(nèi)容

以上解決方案:只能變量兩層文件夾,如果有多層就沒有辦法全部遍歷處理。

規(guī)律

         要解決的問題:獲取一個文件夾內(nèi)的所有文件夾和文件

         子問題:獲取一個文件夾內(nèi)的所有的文件夾和文件

內(nèi)存分析

在函數(shù)內(nèi)部調(diào)用函數(shù)自己,實現(xiàn)文件夾及其字目錄遍歷

遞歸

1.      什么是遞歸?

遞歸就是函數(shù)在自己內(nèi)部調(diào)用函數(shù)。

2.      遞歸兩個點

a)        遞歸點:如果在函數(shù)內(nèi)部去解決一個問題的時候,發(fā)現(xiàn)把問題減小之后,子問題與父問題(函數(shù)要解決的問題)一致,只是規(guī)模變小,這個時候就應(yīng)該采用父問題的解決方案去解決子問題,遞歸點。

文件夾遍歷的遞歸點:遍歷到子文件夾的時候,子文件夾與外層的符文件件本質(zhì)上沒有區(qū)別,遞歸點。

b)        遞歸出口:當遞歸發(fā)生后(函數(shù)內(nèi)部調(diào)用了函數(shù)自己之后),函數(shù)不應(yīng)該無限的調(diào)用自己,應(yīng)該在某個點結(jié)束自己。結(jié)束點稱之為遞歸出口

文件夾遍歷的遞歸出口:讀到的文件是文件不是路徑,遞歸出口是一個文件夾內(nèi)沒有子文件夾或者子文件夾都被遍歷完。

作業(yè):

1.      實現(xiàn)遞歸遍歷文件夾及其子目錄:輸出

2.      遞歸遍歷文件夾及其子目錄:通過數(shù)組保存,保存的數(shù)據(jù)能夠被區(qū)分出是文件還是文件夾,還能確定層級(無限級分類):靜態(tài)變量,二維數(shù)組(文件名,層級,是否是目錄)

文件操作

對文件里面的對文件里面的內(nèi)容內(nèi)容進行讀寫

PHP5文件操作

將文件的內(nèi)容整個進行讀取和寫入

讀取文件

file_get_contents:從一個指定的文件內(nèi)讀取數(shù)據(jù)內(nèi)容。

寫入內(nèi)容

file_put_contents:將指定的字符串寫入到對應(yīng)的文件

注意:file_put_contents如果要寫入的文件不存在,系統(tǒng)會自動創(chuàng)建,有的話就直接寫入

默認的file_put_contents寫入數(shù)據(jù)的時候,會先清空數(shù)據(jù)再寫入

如果要在文件后面追加內(nèi)容:應(yīng)該使用file_put_contents的第三個參數(shù)

FILE_USE_INCLUDE_PATH:先清空文件,再重新寫入(默認的)

FILE_APPEND:追加數(shù)據(jù)到文件末尾

file操作

file就是將一個文件里面的內(nèi)容,逐行取出,存放到一個數(shù)組的元素里,返回一個數(shù)組

PHP4文件操作

php5以前文件的操作,與文件夾一樣,都是通過資源的形式進行操作

1.      獲取文件資源

fopen:打開一個文件資源

如果是通過資源形式去操作文件的話,那么必須在打開文件的時候,就指定操作模式。

只讀模式打開

2.      讀取文件內(nèi)容

fgetcc代表character,一次讀取一個字符

fgetss代表string,代表可以讀取多個字符,取決于指定的讀取長度或者是否碰到換行(最多只能讀取一行數(shù)據(jù))

兩個函數(shù)都是對當前資源指針進行操作,讀取之后都會將指針下移

fread:獲取指定長度的數(shù)據(jù)直到文件結(jié)束

遍歷文件

3.      修改文件(寫)

fwrite:向文件資源指針所在的位置寫入數(shù)據(jù),寫東西不會將當前位置已有的東西往后移,而是會覆蓋

fputsfwrite別名

沒有辦法在指定的中間位置去寫入內(nèi)容,只能覆蓋內(nèi)容

文件指針移動

fseek:將指針指定到對應(yīng)的位置

4.      釋放資源

fclose:使用對應(yīng)的文件資源

文件操作相關(guān)函數(shù)

copy:復(fù)制

unlink:刪除文件

rename:重命名文件

filemtimem代表modify,文件最后被修改的時間

filesize:文件大?。ㄗ止?jié))

fileperms:文件權(quán)限(Linux下的八進制)

簡單文件操作

1.      文件下載

服務(wù)器的文件被下載到瀏覽器端所在的電腦。

HTMLa標簽實現(xiàn)下載:a標簽中如果出現(xiàn)了瀏覽器不能識別的文件的(URL),瀏覽器就會認為是文件(附件),形成文件下載

php實現(xiàn)文件下載

php需要修改一個http響應(yīng)頭(http協(xié)議)

header("Content-type: application/octet-stream"):服務(wù)器給瀏覽器的內(nèi)容是二進制流式文件,

header("Content-Disposition: attachment; filename=filename"):告訴瀏覽器當前數(shù)據(jù)不需要解析,是附件,本地保存的時候建議使用的文件名字是filename

PHP實現(xiàn)下載的好處

1.      隱藏真實文件的路徑,防止別人攻擊

2.      隱藏文件的真實內(nèi)容

作業(yè):

1.      做一個統(tǒng)計網(wǎng)站:如果一個用戶去請求對應(yīng)的腳本文件,記住當前用戶的ip地址,訪問時間,寫入到對應(yīng)的統(tǒng)計文件(一個用戶的一次訪問占一行);當用戶訪問的時候,提示當前用戶是第幾次訪問,是第幾個訪客;

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多