乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

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

      回顧

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

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

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

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

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

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

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

               文件移動(dòng):move_uploaded_file(臨時(shí)文件目錄,指定存儲(chǔ)路徑(帶文件名))

               $path = “./uploads/”;

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


      文件夾操作

      1.      什么是文件操作?

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

      對(duì)文件的增刪改查

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

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

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

      文件夾操作

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

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

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

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

      readdir(路徑資源):從文件夾資源中讀取當(dāng)前資源指針?biāo)赶虻奈募拿?,指針?huì)向下移動(dòng)一位

      3.      釋放資源

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

      遍歷文件夾

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

      結(jié)果集指針回位

      rewinddir(資源)

      函數(shù)遍歷文件夾

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

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

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

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

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

      mkdir:創(chuàng)建一個(gè)路徑,如果路徑存在就會(huì)報(bào)錯(cuò)

      rmdir:移除文件夾

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

      getcwd:獲取當(dāng)前工作路徑

      chdir:改變當(dāng)前工作路徑

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

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

      。

      遍歷所有文件及其子目錄

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

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

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

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

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

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

      以上解決方案:只能變量?jī)蓪游募A,如果有多層就沒有辦法全部遍歷處理。

      規(guī)律

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

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

      內(nèi)存分析

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

      遞歸

      1.      什么是遞歸?

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

      2.      遞歸兩個(gè)點(diǎn)

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

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

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

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

      作業(yè):

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

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

      文件操作

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

      PHP5文件操作

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

      讀取文件

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

      寫入內(nèi)容

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

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

      默認(rèn)的file_put_contents寫入數(shù)據(jù)的時(shí)候,會(huì)先清空數(shù)據(jù)再寫入

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

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

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

      file操作

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

      PHP4文件操作

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

      1.      獲取文件資源

      fopen:打開一個(gè)文件資源

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

      只讀模式打開

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

      fgetcc代表character,一次讀取一個(gè)字符

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

      兩個(gè)函數(shù)都是對(duì)當(dāng)前資源指針進(jìn)行操作,讀取之后都會(huì)將指針下移

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

      遍歷文件

      3.      修改文件(寫)

      fwrite:向文件資源指針?biāo)诘奈恢脤懭霐?shù)據(jù),寫東西不會(huì)將當(dāng)前位置已有的東西往后移,而是會(huì)覆蓋

      fputsfwrite別名

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

      文件指針移動(dòng)

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

      4.      釋放資源

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

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

      copy:復(fù)制

      unlink:刪除文件

      rename:重命名文件

      filemtimem代表modify,文件最后被修改的時(shí)間

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

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

      簡(jiǎn)單文件操作

      1.      文件下載

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

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

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

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

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

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

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

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

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

      作業(yè):

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

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多