PHP文件基本操作及文件的上傳和下載


 此篇實現了PHP對文件的系列操作,包括文件的讀寫和處理、文件的上傳、文件的下載。

 

1、簡單寫文件:file_put_contents("文件名","數據字符串");//寫數據到文件

2、簡單讀文件:$內容1=file_get_contents(“文件名”);//從文件中讀取內容到內容1中

                      //file_put_contents("ww.txt",file_get_contents("http://localhost:8080/ main.php"));//獲取網頁源碼

3、讀文件並輸出:readfile("ww.txt");//也可傳遞URL,內容自接輸出無需加echo等

4、讀文件以行為單位存入數組:$文件行數組=file(“文件名");

5、取目錄名:dirname($文件路徑字符串)//返回目錄字符串

6、獲取文件名:basename("字符串");//獲取文件名

7、創建目錄:mkdir(“目錄名字符串“)//創建的目錄必須是一個,存在會出現錯誤//第二個參數如:0777

8、刪除空目錄:rmdir("空目錄名");//返回bool

9、創建文件:touch("文件名")//返回bool

10、刪除文件:unlink("文件名或文件名路徑");

11、檢查文件或目錄是否存在:file_exists(“文件字符串”)//返回bool

12、基本判斷(內容必須存在):判斷是否是目錄【is_dir(“字符串”)】、 判斷是否是文件【is_file(“字符串”)】

13、獲取文件修改時間:filemtime("文件字符串");//返回時間戳

14、獲取文件大小:filesize("文件字符串");//返回字節數

15、文件重命名和移動:rename(“原文件”,"新文件");//返回bool

16、文件復制:copy("原文件","新文件");//返回bool

17、文件權限:【is_readable()】、【is_writable()】【is_executable()】//讀 寫 執行

18、目錄分隔符:DIRECTORY_SEPARATOR;//在liux系統為“/”,在win下為“\”

19、換行符:PHP_EOL//在liux系統為“\n”,在win下位“\r\n”

20、獲取磁盤總大小:echo disk_total_space("C:");//返回字節數

21、獲取磁盤可用空間總大小:echo disk_free_space("C:");//返回字節數

        echo "C磁盤總大小:".round(disk_total_space("C:")/pow(2,30),2)."G";//打印以G為單位大小

22、目錄:當前目錄(點加斜杠)【 . / 】,上級目錄(點點加斜杠)【 . . /

23、打印目錄下文件:print_r(glob("dirdong/*php"));//獲取文件夾dirdong下的php文件,無到子目錄

24、遍歷文件夾:

1 $dir=opendir("./dirdong");//打開文件資源
2 while($fi=readdir($dir)){//循環
3     if(is_dir("./dirdong/".$fi)) echo "目錄:".$fi."<br/>";
4     if(is_file("./dirdong/".$fi)) echo "文件:".$fi."<br/>";
5 }    
6 closedir($dir);//關閉文件資源

25、利用文件指針的方式讀寫文件:

 1 /*打開模式:
 2 
 3 r   只讀方式,文件指針處於開始
 4 r+  讀寫方式,文件指針處於開始,文件無報錯
 5 w   只寫方式,文件指針處於開始
 6 w+  讀寫方式,文件指針處於開始,文件無則創建
 7 a   寫追加方式,文件指針處於末尾,文件無則創建
 8 a+  讀寫方式,文件指針處於末尾,文件無則創建
 9 rb wb 二進制讀寫方式
10 rt wt 文本方式讀寫方式
11 
12 */
13 $f=fopen("ww.txt","r+");//打開文件 ww.txt 資源
14 
15 fseek($f,3);//從前往后移動文件指針3個字節
16 
17 fseek($f,-2,SEEK_END);//從后往前移動文件指針2個字節
18 
19 rewind($f);//將指針數組移動至開頭
20     
21 echo ftell($f);//查看文件指針位置
22     
23 //循環讀取文件內容
24 //while(!feof($f)){//判斷文件結尾
25 //echo fgetc($f);//只讀取一個字節    
26 //}
27 
28 //echo fgets($f);//一次讀一行
29     
30 //echo fread($f,2);//讀取兩個字節
31     
32     
33 //fwrite($f,"32w東小東\nxxx");//寫內容
34     
35 fclose($f);//關閉文件資源

26、文件鎖,防止同時操作文件造成數據絮亂:

1 flock($f,LOCK_EX);//設置寫鎖,返回bool
2 flock($f,LOCK_SH);//設置讀鎖,返回bool
3 //文件讀寫操作
4 flock($f,LOCK_UN);//釋放鎖,返回bool

27、文件上傳到服務器:

HTML:

1   <form action="wan.php" method="post" enctype="multipart/form-data">
2      
3      <input type="text" name="namexx">
4       <br>
5      <input type="file" name="filexx">
6       <br/>
7      <input type="submit" value="東小東上傳">    
8   </form>

PHP:

 1 //error_reporting("E_ALL & ~ E_NOTICE");
 2 echo '<meta charset="utf-8">';//解決亂碼問題
 3 //post數據,無文件數據
 4 print_r($_POST);
 5 //文件數據 名字,類型,零時目錄,大小等
 6 print_r($_FILES["filexx"]);
 7 //設置保存地址
 8 $filepath="img/".$_POST["namexx"];
 9 //拷貝零時文件到保存目錄
10 if(move_uploaded_file($_FILES["filexx"]["tmp_name"],$filepath)){
11     echo "上傳成功";
12 }else{
13     echo "上傳失敗";
14 }

文件上傳錯誤值:

 

28、多文件上傳基本思路:利用文件數組

1 <input type="file" name="filexx[]">
2 <input type="file" name="filexx[]">

 

 29、文件下載:通過返回頭告訴客戶端此為附件即可

1 //告訴瀏覽器此文件為附件(可下載,不用瀏覽器解析)
2 header("Content-Disposition:attachment;filename=任意文件名1");
3 //輸出內容
4 readfile("任意文件名1");

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM