監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
鷹潭網(wǎng)站建設(shè)公司

當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設(shè)公司

PHP應(yīng)用中常見文件如何操作

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

鷹潭網(wǎng)站建設(shè)www.diyphp.net

PHP 獨(dú)特的語法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語法。 PHP安裝它可以比 CGI 或者 Perl 更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。PHP具有非常強(qiáng)大的功能,所有的CGI的功能PHP都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)。

  文件和目錄的操作

  PHP處理本地服務(wù)器上的文件和目錄是非常方便的,但有時(shí)候會(huì)出現(xiàn)權(quán)限和路徑相關(guān)的問題

  1.打開文件

  resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )

  $handle = fopen(filename,mode)//打開文件,返回代表此文件的資源的句柄

  文件名稱可以使用相對(duì)路徑或者絕對(duì)路徑也可以使用網(wǎng)絡(luò)協(xié)議模式,打開模式具有rr+ww+aa+xx+b 在操作二進(jìn)制文件時(shí)如果沒有指定 'b' 標(biāo)記,可能會(huì)碰到一些奇怪的問題,包括壞掉的圖片文件以及關(guān)于 rn 字符的奇怪問題。

  為移植性考慮,強(qiáng)烈建議在用 fopen() 打開文件時(shí)總是使用 'b' 標(biāo)記。

  以下是幾種打開文件的方式

  $fp = @fopen('log.txt',"rb");

  $fp = @fopen('../log.txt',"rb");

  $fp = @fopen("http://www.runer.com.cn/default.htm","rb");//還可以使用ftp和ghoper等協(xié)議,必須啟用php.ini文件中的allow_url_fopen選項(xiàng)

  ////////////////////////////代碼部分////////////////////////////////////////

  $filename1 = "userinfo.txt";//目錄下或include_path中存在這個(gè)文件

  $filename2 = "test.txt";//目錄下或include_path并不存在這個(gè)文件

  $resource1 = fopen($filename1,"rb");

  @$resource2 = fopen($filename2,"rb");//因?yàn)槟夸浿胁淮嬖谶@個(gè)文件,并且并未使用或include_path尋找包含文件所在路徑則此操作會(huì)報(bào)錯(cuò),使用錯(cuò)誤抑制符@可以迫使瀏覽器不輸出錯(cuò)誤信息

  if($resource1)

  echo "打開文件{$filename1}成功";

  if(!@fopen($filename2,"r"))

  echo "打開文件{$filename2}不成功";

  //////////////////////////////////////////////////////////////////////////

  ---------------------輸出結(jié)果----------------------------------------

  打開文件userinfo.txt成功

  ---------------------------------------------------------------------

  2.使用完畢文件后,要顯式的告訴PHP已經(jīng)使用完文件,讓操作系統(tǒng)確保將文件的所有內(nèi)容正確地從緩沖區(qū)刷新到硬盤

  使用fclose()關(guān)閉文件,

  bool fclose ( resource handle )//關(guān)閉一個(gè)已打開的文件指針

  3.讀取文件,fopen函數(shù)的mode參數(shù)允許讀取,PHP提供了幾個(gè)函數(shù)從文件讀取數(shù)據(jù)

  string fgets ( int handle [, int length] )從文件指針中讀取一行,在二進(jìn)制文件上嘗試fgets會(huì)產(chǎn)生不可預(yù)測(cè)的結(jié)果

  如果不指定長(zhǎng)度,默認(rèn)讀取1K數(shù)據(jù),碰到換行符(包括在返回值中)、EOF 或者已經(jīng)讀取了 length - 1 字節(jié)后停止

  string fgetss ( resource handle [, int length [, string allowable_tags]] )從文件指針中讀取一行并過濾掉 HTML 標(biāo)記

  fgetc()讀取單個(gè)字符

  fread()讀取任意二進(jìn)制數(shù)據(jù)

  ////////////////////////////代碼部分////////////////////////////////////////

  $handle = fopen ("test.jpg", "rb");

  $c;

  while (!feof($handle)) {

  $contents .= @fread($handle, 8192);//循環(huán)讀取并將其合并為一個(gè)大塊文件

  }

  fclose($handle);

  //////////////////////////////////////////////////////////////////////////

  ---------------------輸出結(jié)果----------------------------------------

  ---------------------------------------------------------------------

  4.判斷文件讀取的狀態(tài)

  每個(gè)文件句柄都有一個(gè)文件指針,或者一個(gè)指出下一個(gè)操作將在文件中哪里發(fā)生的游標(biāo),根據(jù)fopen函數(shù)的mode參數(shù)

  文件指針最初位于文件的開頭(0),或者文件的末尾

  feof()可以判斷文件是否已經(jīng)到末尾(到末尾后函數(shù)返回TRUE)

  filesize()函數(shù)返回文件的大小 5.寫入文件

  fwrite()函數(shù)執(zhí)行文件寫入

  ////////////////////////////代碼部分////////////////////////////////////////

  $filename = 'test.txt';

  $somec;

  // 首先我們要確定文件存在并且可寫。

  if (is_writable($filename)) {

  // 在這個(gè)例子里,我們將使用添加模式打開$filename,

  // 因此,文件指針將會(huì)在文件的開頭,

  // 那就是當(dāng)我們使用fwrite()的時(shí)候,$somecontent將要寫入的地方。

  if (!$handle = fopen($filename, 'a')) {

  echo "不能打開文件 $filename";

  exit;

  }

  // 將$somecontent寫入到我們打開的文件中。

  if (fwrite($handle, $somecontent) === FALSE) {

  echo "不能寫入到文件 $filename";

  exit;

  }

  echo "成功地將 $somecontent 寫入到文件$filename";

  fclose($handle);

  } else {

  }

  echo "文件 $filename 不可寫";

  //////////////////////////////////////////////////////////////////////////

  ---------------------輸出結(jié)果----------------------------------------

  成功地將 添加這些文字到文件 寫入到文件test.txt

  ---------------------------------------------------------------------

  對(duì)于二進(jìn)制數(shù)據(jù),必須指定第三個(gè)參數(shù),它包含寫入到磁盤的數(shù)據(jù)字節(jié)數(shù)

  $result = @fwrite($fp,$binary_data,mb_strlen($binary_data,'8bit'));

  6.文件權(quán)限和其他信息

  is_readable()//判斷文件是否可讀

  is_writeable()//判斷文件是否可寫

  is_writable()//判斷文件是否可寫

  fileperms()//判斷文件的權(quán)限(UNIX風(fēng)格的文件權(quán)限測(cè)試函數(shù))

  file_exists()//是否存在這個(gè)文件

  fileowner()//判斷文件所屬用戶

  filegroup()//判斷文件所屬組

  7.刪除和重命名文件

  unlink()//刪除文件

  rename()//重命名文件

  8.訪問目錄

  目錄訪問建議使用前向斜線"/",兼容windows和unix系統(tǒng)

  basename()//返回不包括路徑信息的文件名

  dirname()//返回文件名的目錄部分

  realpath()//接受相對(duì)路徑,返回文件的絕對(duì)路徑

  pathinfo()//提取給定路徑的目錄名,基本文件名和擴(kuò)展名

  opendir()//打開目錄,返回資源句柄

  readdir()//讀取目錄項(xiàng)

  rewinddir()//將讀取指針返回開頭

  closedir()//關(guān)閉讀取句柄

  chdir()//改變當(dāng)前腳本執(zhí)行期間的當(dāng)前工作目錄

  mkdir()//創(chuàng)建目錄

  rmdir()刪除目錄

  ////////////////////////////代碼部分////////////////////////////////////////

  //////////////////////////////////////////////////////////////////////////

  ---------------------輸出結(jié)果----------------------------------------

  filename: web : filetype: dir

  filename: study : filetype: di

發(fā)布:2007-03-31 14:57    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:
鷹潭OA
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢

泛普鷹潭網(wǎng)站建設(shè)公司其他應(yīng)用

鷹潭軟件開發(fā)公司 鷹潭門禁系統(tǒng) 鷹潭物業(yè)管理軟件 鷹潭倉(cāng)庫(kù)管理軟件 鷹潭餐飲管理軟件 鷹潭網(wǎng)站建設(shè)公司