PHP—文件与目录操作
文件的基本操作
1、判斷普通文件和目錄
1.is_file()//判斷給定文件名是否為一個正常的文件 2.is_dir()//判斷給定文件名是否是一個目錄2、文件的屬性
1.file_exists()//檢查文件或目錄是否存在 2.filesize()//取得普通文件大小 3.is_readable()//判斷給定文件名是否可讀 4.is_writable()//判斷給定的文件名是否可寫 5.filectime()//獲取文件的創建時間 6.filemtime()//獲取文件的修改時間 7.fileatime()//取得文件的上次訪問時間 8.stat()//獲取文件大部分屬性值3、目錄的基本操作
1.basename()//返回路徑中的文件名部分2.dirname()//返回路徑中的目錄部分3.pathinfo()//返回文件路徑的信息4.opendir()//打開目錄句柄5.readdir()//從目錄句柄中讀取條目,返回目錄中下一個文件的文件名6.rewinddir()//倒回目錄句柄7.closedir()//關閉目錄句柄8.mkdir()//新建目錄9.rmdir()//刪除指定的空目錄10.scandir()//列出指定路徑中的文件和目錄4、文件的基本操作
1.fopen()//打開文件或者 URL r只讀 r+讀寫2.fread()//讀取文件3.fgets()//從文件指針中讀取一行4.feof()//測試文件指針是否到了文件結束的位置5.fwrite()//寫入文件,返回寫入的字節數6.rewind()//倒回文件指針的位置7.flock()//輕便的咨詢文件鎖定8.ftruncate()//將文件截斷到給定的長度9.fclose()//關閉一個已打開的文件指針10.file() //把整個文件讀入一個數組中11.copy()//拷貝文件12.unlink()//刪除文件13.file_get_contents()//將整個文件讀入一個字符串14.file_put_contents()//將字符串寫入文件中15.rename()//重命名一個文件或目錄16.readfile()//讀入一個文件并寫入到輸出緩沖5、文件的上傳
文件的上傳的過程這些細節我們是不需要管的,都是自動的,上傳的文件默認是放在一個臨時的目錄里面的,我們要做的就是把這些臨時目錄里面的文件移動到我們需要的地方就行啦!
1.html標簽需要做的上傳設置
(1) form標簽屬性設置
? <1>method設置為post
? <2>enctype設置為multipart/form-data
? <3>form表單中設置隱藏類型的input,其中name值設置為MAX_FILE_SIZE,VALUE值設置為需要限制的上傳文件的大小(單位為字節)
2.在服務器端通過PHP處理上傳文件,涉及到下面的幾條信息
(1)與上傳有關的 php配置選項(php.ini)
(2)$_FILES多維數組:用于存儲各種與上傳有關的信息
? $_FILES[‘file’][‘name’] 客戶端機器文件的原名稱,包含擴展名 ? $_FILES[‘file’][‘size’] 已上傳文件的大小,單位為字節 ? $_FILES[‘file’][‘tmp_name’] 文件上傳之后,在服務器端存儲的臨時文件名 ? $_FILES[‘file’][‘error’] 文件上傳時產生的錯誤 ? 0:表示沒有發生任何錯誤,文件上傳成功 ? 1:表示上傳文件的大小超出了再PHP配置文件中upload_max_filesize選項限制的值 ? 2:表示上傳文件大小超出了HTML表單中MAX_FILE_SIZE選項所指定的值 ? 3:表示文件只被部分上傳 ? 4:表示沒有上傳任何文件 ? $_FILES[‘file’][‘type’] 獲取客戶端上傳文件的MIME類型,MIME類型規定了各種文件格式的類型。每種MIME類型都是由/分隔的主類型和子類型組成(3)PHP的文件上傳處理函數:用于上傳文件的后續處理
<1>is_uploaded_file()判斷指定的文件是否通過HTTP POST上傳的 ? <2>move_uploaded_file()文件上傳后,首先會存儲于服務器的臨時目錄中,可以使用該函數將上傳的文件移動到新位置
6、文件的下載:
發送指定的文件MIME類型的頭信息:header('Content-type:MIME類型');
指定下載文件的描述:header('Content-Disposition:attachement;filename=文件名稱');
指定下載文件的大小:header('Content-Length:文件大小');
讀取文件內容至輸出緩沖區: readfile();
總結
以上是生活随笔為你收集整理的PHP—文件与目录操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CRC碰撞
- 下一篇: Sqli-labs第一题详解