PHP學習筆記--檔案目錄操作(檔案上傳執行個體)

來源:互聯網
上載者:User
檔案操作是每個語言必須有的,不僅僅局限於PHP,這裡我們就僅用PHP進行講解

php的檔案進階操作和檔案上傳執行個體我放在文章的最後部分。--以後我還會給大家寫一個PHP類似於網盤操作的例子

注意:閱讀此文章,必須的備一個 《PHP中文手冊》或者其它可以查詢PHP函數的手冊 因為文章有大量的樣本,但是為了節約篇幅和時間,所以請大家自行查閱PHP手冊,以明白函數的具體作用

1、php開啟檔案和關閉檔案

  用到的函數 fopen() 、fclose() 註:開啟的檔案一定要關閉! 具體函數參數請查閱php手冊

執行個體:

 

View Code

fopen()函數在php5中也支援url格式:

 

View Code

2、PHP的檔案讀寫

  讀操作-

用到的函數 readfile()、file()、file_get_contents()、fgets()、fgetss()、fgetc()

樣本中的檔案位置請根據自己的檔案變更,不要糾結檔案位置和檔案名稱什麼的。重點在學習

檔案測試
 
使用 readfile()函數讀取檔案內容:
使用 file()函數讀取檔案內容: "; } ?>
使用 file_get_contents()函數讀取檔案內容:
使用fgets()函數:
使用fgetss()函數:
使用fgetc()函數:

View Code

寫操作-

用到的函數 fwrite()、 file_put_contents()

";    echo fread($fp,filesize($filename)); //輸出其餘的檔案內容    */    $filepath = "05.txt";    $str = "此情可待成追憶   只是當時已惘然
"; echo "用 fwrite() 函數寫入檔案: "; $fopen = fopen($filepath,"wb") or die("檔案不存在"); fwrite($fopen,$str); fclose($fopen); readfile($filepath); echo "

用 file_put_contents() 函數寫入檔案: "; file_put_contents($filepath,$str); readfile($filepath);?>

View Code

3、php檔案本身的操作

本樣本只是列舉函數,請不要直接運行。運行前請根據自己的需求更改

 

View Code

===================================================================

一、php目錄操作

和檔案操作類似,也要開啟關閉目錄 用opendir()、和closedir()函數進行開啟和關閉目錄

 

View Code

二、php目錄的遊覽

核心函數 scandir()

";        }    }    else    {        echo "目錄路徑錯誤!";        }?>

View Code

三、php目錄的其他動作,擷取磁碟目錄大小,建立刪除目錄等等

本樣本只是列舉函數,請不要直接運行。運行前請根據自己的需求更改

";    chdir("../");  //更改為返回上一級    echo getcwd(); //重新擷取目前的目錄        /*用disk_free_space()函數 返回目錄中的可用空間*/    echo disk_free_space("D:/")/pow(1024,3);  //這裡換算成了G、預設是以位元組顯示的        /*用disk_total_space()函數 返回目錄中的可用空間*/    echo disk_total_space("D:/")/pow(1024,3);  //這裡換算成了G、預設是以位元組顯示的        /*關於PHP5以前的老遊覽目錄的方法 我就不列舉了,這裡僅僅給出函數名: readdir()、rewinddir()*/?>

View Code

====================================================================

檔案的進階運用

檔案指標:

";   //輸出總位元組數        $fopen = fopen($filename,"rb");    //開啟檔案 , 以唯讀二進位檔案格式的去        echo "初始指標位置是: ".ftell($fopen)."
"; //輸出指標位置 fseek($fopen,3); //移動指標 echo "使用 fseek() 函數後指標位置: ".ftell($fopen)."
"; //輸出移動後的指標位置 echo "輸出當前指標後面的內容: ".fgets($fopen)."
"; //輸出從當前指標到行尾的內容 if(feof($fopen)) //判斷指標是否指向檔案末尾 { echo "當前指標指向檔案末尾: ".ftell($fopen)."
"; //如果指向了檔案尾,則輸出指標位置 } //使用rewind() 函數返迴文檔流的開頭 --一旦流讀到末尾再度就讀不到資料了, //所以這裡要重新指向一個檔案的指標 rewind($fopen); //查看使用 rewind() 函數後指標的位置 echo "使用 rewind() 函數後指標的位置: ".ftell($fopen)."
"; echo "輸出前 6 個位元組的內容: ".fgets($fopen,6); //輸出前6個位元組的內容 fclose($fopen); //關閉檔案 } else { echo "檔案不存在!"; }?>

View Code

檔案鎖定:

 

View Code

====================================================================

檔案的上傳

擷取上傳檔案的資訊:

無標題文檔    
 
$value) //使用foreach迴圈輸出上傳檔案資訊的名稱和值 { echo $name.'='.$value."
"; } } ?>

View Code

真正的檔案上傳(從臨時到指定位置):

無標題文檔         0)  //判斷檔案大小            {                //上傳檔案                move_uploaded_file($fileinfo['tmp_name'],"upfile/".$fileinfo['name']);                echo "檔案上傳成功!";            }            else            {                echo "檔案太大或者未知";                }        }    ?>

View Code

多檔案上傳:

無標題文檔        ";                }            }        }    ?>

View Code
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.