真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP整理筆記五目錄與文件

一.目錄操作

成都創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)成都營(yíng)銷(xiāo)網(wǎng)站建設(shè)、網(wǎng)站重做改版、武鄉(xiāng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為武鄉(xiāng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

 

解析目錄路徑:basename()函數(shù)返回路徑的文件名部分。

            $path='C:\AppServ\www\Basic6\Demo1.php';

            echo'path:'.basename($path);

?>

 

獲取路徑的目錄:dirname()函數(shù)返回路徑目錄部分。

            $path='C:\AppServ\www\Basic6\Demo1.php';

            echo'path:'.dirname($path);

?>

 

關(guān)于路徑的信息:pathinfo()函數(shù)創(chuàng)建一個(gè)關(guān)聯(lián)數(shù)組,其中包括:目錄名、基本名和擴(kuò)展名。

            $path='C:\AppServ\www\Basic6\Demo1.php';

            $array_path= pathinfo($path);

            print_r($array_path);

?>

 

確定絕對(duì)路徑:realpath()函數(shù)將path中的所有符號(hào)鏈接和相對(duì)路徑引用轉(zhuǎn)換為相應(yīng)的硬鏈接和絕對(duì)路徑。

            $path='../index.php';

            echorealpath($path);

?>

 

二.磁盤(pán)、目錄和文件計(jì)算

 

確定文件的大小:filesize()函數(shù)返回指定文件字節(jié)大小。

            $file='C:\AppServ\www\Basic6\Demo1.php';

            echoround(filesize($file)/1024,2).'KB';

?>

 

計(jì)算磁盤(pán)的可用空間:disk_free_space()函數(shù)返回指定的目錄所在磁盤(pán)分區(qū)的可用空間。

            $drive='C:';

            echoround(disk_free_space($drive)/1024/1024,2).'MB';

?>

 

計(jì)算磁盤(pán)的總?cè)萘浚篸isk_total_space()函數(shù)返回指定的目錄所在磁盤(pán)分區(qū)的總?cè)萘俊?/p>

            $drive='C:';

            echoround(disk_total_space($drive)/1024/1024,2).'MB';

?>

 

確定文件的最后訪(fǎng)問(wèn)時(shí)間:fileatime()函數(shù)返回文件的最后訪(fǎng)問(wèn)時(shí)間,采用的Unix時(shí)間戳格式。

            $file='C:\AppServ\www\Basic6\Demo1.php';

            echodate("Y-m-d,h:i:s",fileatime($file));

?>

 

確定文件的最后改變時(shí)間:filectime()函數(shù)返回文件的最后改變時(shí)間,采用Unix時(shí)間戳格式。

            $file='C:\AppServ\www\Basic6\Demo1.php';

            echodate("Y-m-d,h:i:s",filectime($file));

?>

 

確定文件的最后修改時(shí)間:filemtime()函數(shù)返回文件的最后修改時(shí)間,采用Unix時(shí)間戳格式。

            $file='C:\AppServ\www\Basic5\Demo1.php';

            echodate("Y-m-d,h:i:s",filemtime($file));

?>

 

 

三.文件處理

 

資源(resource)這個(gè)詞常常與可以發(fā)起輸入或輸出流的實(shí)體聯(lián)系起來(lái)。標(biāo)準(zhǔn)輸入或輸出、文件和網(wǎng)絡(luò)套接字都是資源的例子。因此你會(huì)經(jīng)??吹奖竟?jié)所介紹的很多函數(shù)都是在資源處理的上下文中討論的,而不是文件處理,這本身是因?yàn)樗羞@些函數(shù)都能夠與前面所述的資源結(jié)合使用。但是,由于這些函數(shù)與文件結(jié)合使用是應(yīng)用中最常見(jiàn)的。

 

將數(shù)據(jù)寫(xiě)入一個(gè)文件,有3個(gè)步驟:

1.打開(kāi)這個(gè)文件。如果文件不存在,需要先創(chuàng)建它。

2.將數(shù)據(jù)寫(xiě)入這個(gè)文件。

3.關(guān)閉這個(gè)文件

 

同樣,從一個(gè)文件中讀出數(shù)據(jù),也有3個(gè)步驟:

1.打開(kāi)這個(gè)文件。如果這個(gè)文件不能打開(kāi),就應(yīng)該意識(shí)到這一點(diǎn)并且正確地退出。

2.從文件中讀出數(shù)據(jù)。

3.關(guān)閉這個(gè)文件。

 

 

打開(kāi)文件

要在PHP中打開(kāi)一個(gè)文件,可以使用fopen()函數(shù)。當(dāng)打開(kāi)一個(gè)文件的時(shí)候,還需要指定如何使用它。也就是,文件模式。

選擇文件模式:當(dāng)打開(kāi)一個(gè)文件的時(shí)候,有3中選擇:

1.打開(kāi)文件為了只讀、只寫(xiě)或者讀和寫(xiě)。

2.如果要寫(xiě)一個(gè)文件,你可能希望覆蓋所有已有的文件內(nèi)容,或者僅僅將新數(shù)據(jù)追加到文件末尾。如果該文件已經(jīng)存在,也可以終止程序的執(zhí)行而不是覆蓋該文件。

3.如果希望在一個(gè)區(qū)分了二進(jìn)制方式和純文本方式的系統(tǒng)上寫(xiě)一個(gè)文件,還必須制定采用的方式。

 

函數(shù)fopen()支持以上3中方式的組合。

$fp=fopen(文件路徑 ,文件模式, [是否在incloude_path中搜索一個(gè)文件],[允許文件名以協(xié)議名稱(chēng)開(kāi)始(如http://)] ) 

 

fopen()函數(shù)的文件模式總結(jié)

模式

模式名稱(chēng)

意義

r

只讀

文件指針置于文件開(kāi)頭

r+

讀寫(xiě)

文件指針置于文件開(kāi)頭

w

只寫(xiě)

在寫(xiě)入前,刪除文件內(nèi)容,將指針?lè)祷氐轿募_(kāi)頭。如果文件不存在,則嘗試創(chuàng)建。

w+

讀寫(xiě)

在讀取或?qū)懭胫?,刪除文件內(nèi)容,將指針?lè)祷氐轿募_(kāi)頭。如果文件不存在,則嘗試創(chuàng)建。

a

只寫(xiě)

文件指針置于文件末尾。如果文件不存在,則嘗試創(chuàng)建。此模式成為追加(append)。

a+

讀寫(xiě)

文件指針置于文件末尾。如果文件不存在,則嘗試創(chuàng)建。此過(guò)程稱(chēng)為追加到文件。

b

二進(jìn)制

二進(jìn)制模式----用于與其他模式進(jìn)行連接。如果文件系統(tǒng)能夠區(qū)分二進(jìn)制文件和文本文件,你可能會(huì)使用它。Windows系統(tǒng)可以區(qū)分;而UNIX則不區(qū)分。推薦一直使用這個(gè)選項(xiàng),以便獲得最大程度的可移植性。二進(jìn)制模式是默認(rèn)的模式。

t

文本

用于與其他模式的結(jié)合。這個(gè)模式只是Windows系統(tǒng)下一個(gè)選項(xiàng)。它不是推薦選項(xiàng),除非你曾經(jīng)在代碼中使用b選項(xiàng)。

 

如果fopen()函數(shù)調(diào)用失敗,函數(shù)將返回false??梢杂靡环N對(duì)于用戶(hù)友好的方式來(lái)處理這個(gè)錯(cuò)誤,可以通過(guò)抑制PHP的錯(cuò)誤信息并且根據(jù)自己的方式給出錯(cuò)誤信息。

@$fp=fopen("file.txt",'ab');   //ab追加并且二進(jìn)制方式

 

寫(xiě)文件

在PHP中寫(xiě)文件相對(duì)比較簡(jiǎn)單??梢允褂胒write()或者 fputs()函數(shù)。我們可以使用如下方式調(diào)用fwrite();

fwrite($fp,$outputstring, [intlength]);  //第三個(gè)可選參數(shù)為最大字符數(shù)

這個(gè)函數(shù)告訴PHP將保存在$outputstring中的字符串寫(xiě)入到$fp指向的文件中。

fwrite()函數(shù)的一個(gè)新的替換函數(shù)是file_put_contects().

 

可以通過(guò)PHP的內(nèi)置strlen()函數(shù)獲得字符串的長(zhǎng)度:

fwrite($fp,$outputstring, strlen($outputstring));

 

當(dāng)然還有一種不需要資源句柄的寫(xiě)入方法:file_put_contents()。

 

關(guān)閉文件

當(dāng)文件使用完畢后,應(yīng)該將其關(guān)閉。應(yīng)該調(diào)用fclose()函數(shù):

fclose($fp);

 

讀出文件

   $fp= fopen("file.txt","r");

 

fgetc():讀出一個(gè)字符,并將指針移到下一個(gè)字符。

fgets():讀出一行字符,可以指定一行顯示的長(zhǎng)度。

fgetss():從文件指針中讀取一行并過(guò)濾掉HTML標(biāo)記。

fread():讀取定量的字符,fread($handle,$length)讀取$length長(zhǎng)度的字符串。

fpassthru():輸出文件指針處的所有剩余數(shù)據(jù)。

 

file():將整個(gè)文件讀入數(shù)組中,以行分組。

readfile():讀入一個(gè)文件并寫(xiě)入到輸出緩沖,本身可以輸出到瀏覽器,返回值為數(shù)據(jù)總長(zhǎng)度。

file_get_contents():將整個(gè)文件讀入一個(gè)字符串。

 

 

      while(!feof($fp)) {

             echofgetc($fp);

}

判斷讀完文件函數(shù):feof()指針是否到了文件結(jié)束的為位置,返回true,!feof()返回false;

 

查看文件是否存在:file_exists();

      if(file_exists("file.txt")) {

             //..

       }

      else{

             //...

}

 

查看一個(gè)文件的大?。篺ilesize();

刪除一個(gè)文件:unlink();

在文件中定位:rewind()、fseek()和ftell();

rewind()函數(shù)可以將文件指針復(fù)位到文件的開(kāi)始。

ftell()函數(shù)可以以字節(jié)為單位報(bào)告文件指針當(dāng)前在文件中的位置。

fseek()函數(shù)可以將文件指針fp從whence位置移動(dòng)offset字節(jié),定位。

 

文件鎖定

假設(shè)兩個(gè)客戶(hù)試圖同時(shí)訂購(gòu)?fù)患唐?。那么他們同時(shí)打開(kāi)了這個(gè)文件,同時(shí)的更新,就會(huì)出現(xiàn)少一個(gè)客戶(hù)訂購(gòu)的數(shù)據(jù)。

為了避免這樣的問(wèn)題,可以使用文件鎖定的方法。

flock()函數(shù)。

 

flock的操作值

操作值

意義

LOCK_SH(以前為1)

讀寫(xiě)鎖定。這意味著文件可以共享,其他人可以讀該文件

LOCK_EX(以前為2)

寫(xiě)操作鎖定。這是互斥的。該文件不能被共享

LOCK_UN(以前為3)

釋放已有的鎖定

LOCK_NB(以前為4)

防止在請(qǐng)求加鎖時(shí)發(fā)生阻塞

 

   $fp= fopen("file.txt","ab");

       flock($fp,LOCK_EX);  //鎖定

       fwrite($fp,$outsum);

       flock($fp, LOCK_UN);  //釋放

fclose($fp);

 

目錄句柄操作

opendir():打開(kāi)路徑指定的目錄流。

closedir():關(guān)閉目錄流。

readdir():返回目錄中的各個(gè)元素。

 

$dir= opendir('C:\AppServ\www\Basic5');

      while(!!$file= readdir($dir)) {

             echo$file.'
';

}

closedir($dir);

 

scandir():將目錄讀入數(shù)組。

       print_r(scandir('C:\AppServ\www\Basic5'));

 

rmdir():刪除指定的目錄。

rmdir('C:\AppServ\www\Basic5\123');

 

rename():重命名文件。

rename('Demo1.php','Demo01.php');


當(dāng)前文章:PHP整理筆記五目錄與文件
瀏覽路徑:http://weahome.cn/article/jhjdic.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部