2-建立和修改文件內容

file_put_contents寫入檔案

我們先來學習第一個寫入檔案的方式:

int file_put_contents ( string $文件路徑, string $寫入資料])

功能:向指定的檔案當中寫入字串,如果檔案不存在則建立檔案。回傳的是寫入的位元組長度

<?php
    $data = "我是一个兵,来自老百姓";
     $numbytes = file_put_contents('binggege.txt', $data);
     if($numbytes){
 
        echo '写入成功,我们读取看看结果试试:';
 
        echo file_get_contents('binggege.txt');
 
    }else{
        echo '写入失败或者没有权限,注意检查';
    }
?>

我們發現寫入檔案也挺簡單的。按照這個函數的格式,指定文件,寫入字串資料就可以了。

fwrite配合fopen進行寫入操作

#int fwrite ( resource $檔案資源變數, string $寫入的字串[, int長度])

註:fwrite的別名函數是fputs

我們上課試了r模式,只道是讀取的時候使用,接下來我們用fwrite加上fopen中的w,寫入模式來進行文件寫入。

我們來看看特點:

寫入方式打開,將檔案指標指向檔案頭並將檔案大小截為零。如果文件不存在則嘗試建立。

注意:在下面的實驗中,你可以試試看新個test.txt檔案向裡面寫入內容。然後,可以試試看把test.txt刪除。看看有什麼提示。

<?php
    $filename = 'test.txt';
    $fp= fopen($filename, "w");
    $len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
    fclose($fp);
    print $len .'字节被写入了\n";
?>

總結:
1.不論有沒有新建都會開啟檔案重新寫入
2.原有的檔案內容會被覆寫
3.檔案不存在會建立

那我們來比較以下幾個模式的不同:



   QQ截图20161009102436.png



##我們來用實驗證明:

<?php
    $filename = 'test.txt';
    $fp= fopen($filename, "r+");
    $len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
    fclose($fp);
    print $len .'字节被写入了\n';
?>

實驗時可以把r後面的+號去掉。

我們透過實驗,確實發現使用r模式,在文件存的時候可以進行寫入數據,只用r的話,寫入是不成功的。

a模式和w模式的不同

QQ截图20161009102447.png同樣是下面的這段程式碼,我們改為a模式。

<?php
    $filename = 'test.txt';
    $fp= fopen($filename, "a");
    $len = fwrite($fp,'读大学迷茫了,PHP学院PHP给你希望');
    echo  $len .'字节被写入了\n';
?>

打開網頁執行這段程式碼,你會發現:每刷新一次,文件中就會多一段
:讀大學迷茫了,PHP給你希望。

總結:

#   

註:a+ 是增強的追加功能。可以讀取時也可以使用。

x模式和w模式的不同

這段程式碼我們再實驗一次,改為x模式:###
<?php
    $filename = 'test.txt';
    $fp= fopen($filename, "x");
    $len = fwrite($fp,'读大学迷茫了,PHP学院PHP给你希望');
    echo  $len .'字节被写入了\n';
?>
###我們會發現:######1 .    檔案存在的時候會報錯######2.    如果把$filename 改成其他的檔案名稱,就可以了。但是,再次刷新的時候又報錯了######3.    x+ 是增強的x模式。讀取時也可以使用。 ###### ############
繼續學習
||
<?php $data = "我是一个兵,来自老百姓"; $numbytes = file_put_contents('binggege.txt', $data); if($numbytes){ echo '写入成功,我们读取看看结果试试:'; echo file_get_contents('binggege.txt'); }else{ echo '写入失败或者没有权限,注意检查'; } ?>