亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

讀取文件

readfile讀取檔案

那要如何讀取一個(gè)檔案呢?我們先學(xué)一個(gè)函數(shù)。

int readfile ( string $檔名)

#功能:傳入一個(gè)檔案路徑,輸出一個(gè)檔案。

下面的這一段程式碼中,只要傳入檔案名稱(chēng)或指定的檔案路徑就把檔案讀取出來(lái)了。

<?php
    //linux類(lèi)的讀了方式
    readfile("/home/paul/test.txt");
    //windows類(lèi)的讀取方式
    readfile("c:\boot.ini");
?>

注意:上面的程式碼中windows的斜線(xiàn)是\斜線(xiàn),可能會(huì)轉(zhuǎn)義掉一些字元。因此,我們寫(xiě)的時(shí)候?qū)懮蟽蓷l斜線(xiàn)。

file_get_contents開(kāi)啟檔案

上面的是單純打檔案就直接輸出了,有沒(méi)有開(kāi)啟檔案後,能夠賦值給一個(gè)變數(shù)的操作方式呢。

PHP當(dāng)然會(huì)提供這種方式。這個(gè)方式就是PHP開(kāi)啟檔案並回傳內(nèi)容的方式之一,我們來(lái)看看函數(shù):

string file_get_contents ( string filename)

功能:傳入一個(gè)檔案或檔案路徑,開(kāi)啟這個(gè)文件傳回文件的內(nèi)容。文件的內(nèi)容是一個(gè)字串。

<?php
 
    $filename = 'NoAlike.txt';
 
    $filestring = file_get_contents($filename);
    echo $filestring;
?>

上面的程式碼,就開(kāi)啟了一個(gè)文件,並且將文件當(dāng)中的內(nèi)容進(jìn)行了輸出。

我們來(lái)針對(duì)之前的知識(shí)把程式碼進(jìn)行一下擴(kuò)充。用一用之前的知識(shí)點(diǎn)。

<?php
    //假設(shè)我們有一個(gè)多行的文件叫NoAlike.txt,沒(méi)有的話(huà)你可以新建一個(gè)這個(gè)文件
     $filename = 'NoAlike.txt';
 
 
    //打開(kāi)這個(gè)文件,將文件內(nèi)容賦值給$filestring
    $filestring = file_get_contents($filename);
 
    //因?yàn)槊恳恍杏幸粋€(gè)回車(chē)即\n,我用\n來(lái)把這個(gè)字符串切割成數(shù)組
    $filearray = explode("\n", $filestring);
 
    //把切割成的數(shù)組,下標(biāo)賦值給$key,值賦值給$val,每次循環(huán)將$key加1。
    while (list($key, $val) = each($filearray)) {
        ++$key;
        $val = trim($val);
 
        //用的單引號(hào),單引號(hào)不解釋變量進(jìn)行了拼接而已
        print 'Line' . $key .':'.  $val.'<br />';
    }
?>

上面,我們就把之前所學(xué)的知識(shí)進(jìn)行了組合。

fopen、fread、fclose操作讀取檔案

上面file_get_contents開(kāi)啟檔案的方式簡(jiǎn)單、粗暴。下面的

resource fopen ( string $檔名, string 模式)

string fread ( resource $操作資源, int 讀取長(zhǎng)度)

bool fclose ( resource $操作資源)

透過(guò)上述的函數(shù)我們來(lái)說(shuō)明資源型別的通常操作方式:

1.??? 開(kāi)啟資源

2.??? 使用相關(guān)函數(shù)進(jìn)行動(dòng)作

#3.??? 關(guān)閉資源

fopen函數(shù)?fopen函數(shù)的功能是開(kāi)啟文件,參數(shù)主要有兩個(gè):

1.??? 文件開(kāi)啟的路徑

2.??? 開(kāi)啟檔案的模式

返回類(lèi)型是一個(gè)資源類(lèi)型,我們第一次遇到了之前基礎(chǔ)類(lèi)型的時(shí)候所講到的資源類(lèi)型。
資源類(lèi)型需要其他的函數(shù)來(lái)操作這個(gè)資源。所有的資源有開(kāi)啟就要有關(guān)閉。

fread函數(shù)?函數(shù)的功能的功能是讀取開(kāi)啟的檔案資源。讀取指定長(zhǎng)度的檔案資源,讀取一部分向後移動(dòng)一部分。至到文件結(jié)尾。

fclose函數(shù)?fclose函數(shù)的功能是關(guān)閉資源。資源有開(kāi)啟就有關(guān)閉。

了解完函數(shù),後兩個(gè)函數(shù)比較簡(jiǎn)單。而fopen函數(shù)的模式到底是什麼,fopen的模式有下面幾個(gè),我們來(lái)講一下fopen的模式:


QQ截圖20161009101723.png

? ?


接下來(lái),我們只來(lái)學(xué)習(xí)r模式,下結(jié)課我們?cè)趯?xiě)入的時(shí)候再來(lái)講講其他幾個(gè)模式。

我們先會(huì)讀取檔案了,才能很好的掌握寫(xiě)入檔案。

1.開(kāi)啟檔案

<?php
    //你可以創(chuàng)建一個(gè)NoAlike.txt,以只讀模式打開(kāi)
    $fp = fopen('NoAlike.txt', "r");
 
 
    //var_dump()操作一下$fp看看效果,輸出的是不是只有類(lèi)型提示的是resource
    var_dump($fp);
?>

2.讀取檔案

<?php
    $fp = fopen('NoAlike.txt', "r");
 
    //打開(kāi)一個(gè)文件類(lèi)型后,讀取長(zhǎng)度
    $contents = fread($handle, 1024);
?>

3.關(guān)閉檔案

<?php
    $fp = fopen($filename, 'r');
    $contents = fread($fp, 1024);
    fclose($fp);
    echo $contents;
?>

其他注意事項(xiàng):


QQ截圖20161009101707.png


使用範(fàn)例:

<?php
 $fp = fopen($filename, 'ab');
 $contents = fwrite($fp, '可愛(ài)的很\n喲');
 fclose($fp);
 echo $contents;
 ?>

說(shuō)明:
實(shí)驗(yàn)無(wú)法讓肉眼看到這個(gè)實(shí)驗(yàn)效果。大家記住有這個(gè)特色即可。

Windows 下提供了一個(gè)文字轉(zhuǎn)換標(biāo)記('t')可以透明地將 \n 轉(zhuǎn)換為 \r\n。
與此對(duì)應(yīng)也可以使用 'b' 來(lái)強(qiáng)制使用二進(jìn)位模式,這樣就不會(huì)轉(zhuǎn)換資料。要使用這些標(biāo)記,要么用 'b' 或用 't' 作為 mode 參數(shù)的最後一個(gè)字元。

?


繼續(xù)學(xué)習(xí)
||
<?php //假設(shè)我們有一個(gè)多行的文件叫NoAlike.txt,沒(méi)有的話(huà)你可以新建一個(gè)這個(gè)文件 $filename = 'NoAlike.txt'; //打開(kāi)這個(gè)文件,將文件內(nèi)容賦值給$filestring $filestring = file_get_contents($filename); //因?yàn)槊恳恍杏幸粋€(gè)回車(chē)即\n,我用\n來(lái)把這個(gè)字符串切割成數(shù)組 $filearray = explode("\n", $filestring); //把切割成的數(shù)組,下標(biāo)賦值給$key,值賦值給$val,每次循環(huán)將$key加1。 while (list($key, $val) = each($filearray)) { ++$key; $val = trim($val); //用的單引號(hào),單引號(hào)不解釋變量進(jìn)行了拼接而已 print 'Line' . $key .':'. $val.'<br />'; } ?>
提交重置程式碼