《PHP開發手冊》筆記之PHP中關於文件的操做函數

打開文件

fopen(string filename,string mode);//返回一個資源對象,存儲當前文件資源

解釋php

filename:文件的文件名及其所在路徑,
 mode:文件的打開模式,mode的值能夠以下表所示。
model的值 說明
r 只讀方式打開,將文件指針指向文件頭
r+ 讀寫方式打開,將文件指針指向文件頭
w 寫入方式打開,若是文件存在會將文件清空,若是文件不存在則建立
w+ 讀寫方式,若是文件存在會將文件清空,若是文件不存在則建立
a 寫入方式打開,若是文件存在則追加,若是文件不存在則建立
a+ 讀寫方式打開,若是文件存在則追加,若是文件不存在則建立
x 寫入方式打開,若是文件存在則打開失敗,若是文件不存在則建立
x+ 讀寫方式打開,若是文件存在則打開失敗,若是文件不存在則建立

關閉文件

void fclose(file_resource);

解釋數組

file_resource:指使用fopen()函數打開文件時返回的資源對象。

例子 關閉文件操做服務器

讀取文件

1.讀取文件中的一個字符
string fgetc($file_resource);//讀取文件中的一個字符,返回文件中的一個字符並將指針移動到下一個字符

解釋app

file_resource:指使用fopen()函數打開文件時返回的資源對象。

例子 使用fgetc()函數讀取文件函數

2.讀取文件中的一行(實際應用中最常使用)
string fgets($file_resource);//讀取文件中的一行,返回文件中的一行並將指針移動到下一行

解釋指針

file_resource:指使用fopen()函數打開文件時返回的資源對象。

例子 使用fgets()函數讀取文件code

3.讀取文件中的任意長字符
string fread($file_resource,int length);//讀取文件中的任意長字符,返回文件中的一行並將指針移動到下一行

解釋對象

file_resource:指使用fopen()函數打開文件時返回的資源對象。
length:要讀取的字符長度,若是length長度超過文件的長度,文件的所有內容將被返回

例子 使用fread()函數讀取文件資源

<?php
    $file = fopen("test\\file.txt",'r');//以只讀的方式打開test文件夾下的file.txt文件
    echo fread($file,20);//輸出文件中的前20個字符
    fclose($file);//關閉文件
?>

應用字符串

  • fread()函數一般結合filesize()函數來獲取文件的所有內容。

    int filesize(string filename);//讀取文件大小的字節數

    filename:文件名及其所在路徑

  • 例子:返回文件的全部內容

    <?php
       $filename = "test\\file.txt";//文件名
       $file = fopen($filename,'r');//以只讀的方式打開test文件夾下的file.txt文件
       filesize = filesize($file);//獲取文件內容的字符長度
       echo fread($file,filesize);//輸出文件中的所有內容
       fclose($file);//關閉文件
    ?>

寫入文件

int fwrite(file_resource,string str,[,int length]);

解釋

file_resource:指使用fopen()函數打開文件時返回的資源對象。
str:要寫入文件的字符串
length:可選參數,指定length則只將str的前length長度寫入文件

例子 使用fwrite()函數寫入文件

刪除文件

bool unlink(string filename);//刪除文件

解釋

filename:文件名及其所在路徑。

例子 使用unlink()函數刪除文件

複製文件

bool copy(string filename1,string filename2);//複製文件,將filename1文件複製到filename2

解釋

filename1:源文件的文件名及其所在路徑。
filename1:目標文件的文件名及其所在路徑。

例子 使用copy()函數複製文件

文件的上傳

bool move_upload_file(string filename1,string filename2);

解釋

filename1:客戶端源文件的文件名及其所在路徑。
filename1:服務器上目標文件的文件名及其所在路徑。

例子 文件的上傳

  • 拓展 PHP中的全局變量$_FILES,它是一個二維的全局變量數組。數組中每一行由5個元素組成

    1.$_FILES[]['name']:客戶端源文件名
    2.$_FILES[]['size']:上傳文件的字節數
    3.$_FILES[]['type']:上傳文件的類型
    4.$_FILES[]['tmp_name']:上傳文件後在服務器上的臨時存儲文件名
    5.$_FILES[]['error']:上傳文件的錯誤代碼,若是爲0表示沒有錯誤發生

文件的下載

例子 文件的下載,對downloads文件中的文件進行瀏覽和下載的功能

<?php
    $res = 'downloads/';
    if(!isset($_GET['file'])){//若是參數中沒有指定文件名,則讀取文件列表
        $dir_res = opendir($dir);//打開downloads文件夾
        echo 「<h1>文件下載</h1>」;
        while($filen = readdir($dir_res)){//讀取輸出文件名
            if($filen != "." and $filen != ".." ){//過濾當前目錄和上一級目錄不顯示
                echo "<a href='?file=".$filen."'>".$filen."</a><br>";
            }
            closedir($dir_res);
        }
    }else{//存在文件
        $file_name = $dir.$_GET['file'];//獲取當前文件名
        if($fh = fopen($file_name,'r')){//打開文件
            $fsize = filesize[$file_name];//得到文件大小
            $path_parts = pathinfo($file_name);//獲取文件路徑信息
            header(「Content-type:application/octet-stream」);//定義文件類型
            header(「Content-Disposition:filename=\"".$path_parts['basename']."\"」);//定義文件名
            header(「Content-length:」.$fsize);//定義文件大小
            while(!feof($fh)){//讀取文件並輸出
                $buffer = fread($fh,2048);
                echo $buffer;
            }
        }
    }
  ?>
相關文章
相關標籤/搜索