當前位置:工程項目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設公司
PHP應用中常見文件如何操作
PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創(chuàng)新的語法。 PHP安裝它可以比 CGI 或者 Perl 更快速的執(zhí)行動態(tài)網(wǎng)頁。用PHP做出的動態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達到加密和優(yōu)化代碼運行,使代碼運行更快。PHP具有非常強大的功能,所有的CGI的功能PHP都能實現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。
文件和目錄的操作
PHP處理本地服務器上的文件和目錄是非常方便的,但有時候會出現(xiàn)權限和路徑相關的問題
1.打開文件
resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )
$handle = fopen(filename,mode)//打開文件,返回代表此文件的資源的句柄
文件名稱可以使用相對路徑或者絕對路徑也可以使用網(wǎng)絡協(xié)議模式,打開模式具有rr+ww+aa+xx+b 在操作二進制文件時如果沒有指定 'b' 標記,可能會碰到一些奇怪的問題,包括壞掉的圖片文件以及關于 rn 字符的奇怪問題。
為移植性考慮,強烈建議在用 fopen() 打開文件時總是使用 'b' 標記。
以下是幾種打開文件的方式
$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選項
////////////////////////////代碼部分////////////////////////////////////////
$filename1 = "userinfo.txt";//目錄下或include_path中存在這個文件
$filename2 = "test.txt";//目錄下或include_path并不存在這個文件
$resource1 = fopen($filename1,"rb");
@$resource2 = fopen($filename2,"rb");//因為目錄中不存在這個文件,并且并未使用或include_path尋找包含文件所在路徑則此操作會報錯,使用錯誤抑制符@可以迫使瀏覽器不輸出錯誤信息
if($resource1)
echo "打開文件{$filename1}成功";
if(!@fopen($filename2,"r"))
echo "打開文件{$filename2}不成功";
//////////////////////////////////////////////////////////////////////////
---------------------輸出結果----------------------------------------
打開文件userinfo.txt成功
---------------------------------------------------------------------
2.使用完畢文件后,要顯式的告訴PHP已經(jīng)使用完文件,讓操作系統(tǒng)確保將文件的所有內(nèi)容正確地從緩沖區(qū)刷新到硬盤
使用fclose()關閉文件,
bool fclose ( resource handle )//關閉一個已打開的文件指針
3.讀取文件,fopen函數(shù)的mode參數(shù)允許讀取,PHP提供了幾個函數(shù)從文件讀取數(shù)據(jù)
string fgets ( int handle [, int length] )從文件指針中讀取一行,在二進制文件上嘗試fgets會產(chǎn)生不可預測的結果
如果不指定長度,默認讀取1K數(shù)據(jù),碰到換行符(包括在返回值中)、EOF 或者已經(jīng)讀取了 length - 1 字節(jié)后停止
string fgetss ( resource handle [, int length [, string allowable_tags]] )從文件指針中讀取一行并過濾掉 HTML 標記
fgetc()讀取單個字符
fread()讀取任意二進制數(shù)據(jù)
////////////////////////////代碼部分////////////////////////////////////////
$handle = fopen ("test.jpg", "rb");
$c;
while (!feof($handle)) {
$contents .= @fread($handle, 8192);//循環(huán)讀取并將其合并為一個大塊文件
}
fclose($handle);
//////////////////////////////////////////////////////////////////////////
---------------------輸出結果----------------------------------------
---------------------------------------------------------------------
4.判斷文件讀取的狀態(tài)
每個文件句柄都有一個文件指針,或者一個指出下一個操作將在文件中哪里發(fā)生的游標,根據(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)) {
// 在這個例子里,我們將使用添加模式打開$filename,
// 因此,文件指針將會在文件的開頭,
// 那就是當我們使用fwrite()的時候,$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 不可寫";
//////////////////////////////////////////////////////////////////////////
---------------------輸出結果----------------------------------------
成功地將 添加這些文字到文件 寫入到文件test.txt
---------------------------------------------------------------------
對于二進制數(shù)據(jù),必須指定第三個參數(shù),它包含寫入到磁盤的數(shù)據(jù)字節(jié)數(shù)
$result = @fwrite($fp,$binary_data,mb_strlen($binary_data,'8bit'));
6.文件權限和其他信息
is_readable()//判斷文件是否可讀
is_writeable()//判斷文件是否可寫
is_writable()//判斷文件是否可寫
fileperms()//判斷文件的權限(UNIX風格的文件權限測試函數(shù))
file_exists()//是否存在這個文件
fileowner()//判斷文件所屬用戶
filegroup()//判斷文件所屬組
7.刪除和重命名文件
unlink()//刪除文件
rename()//重命名文件
8.訪問目錄
目錄訪問建議使用前向斜線"/",兼容windows和unix系統(tǒng)
basename()//返回不包括路徑信息的文件名
dirname()//返回文件名的目錄部分
realpath()//接受相對路徑,返回文件的絕對路徑
pathinfo()//提取給定路徑的目錄名,基本文件名和擴展名
opendir()//打開目錄,返回資源句柄
readdir()//讀取目錄項
rewinddir()//將讀取指針返回開頭
closedir()//關閉讀取句柄
chdir()//改變當前腳本執(zhí)行期間的當前工作目錄
mkdir()//創(chuàng)建目錄
rmdir()刪除目錄
////////////////////////////代碼部分////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
---------------------輸出結果----------------------------------------
filename: web : filetype: dir
filename: study : filetype: di
- 1企業(yè)信息統(tǒng)計系統(tǒng)開發(fā)方案
- 2Asia-Pacific Economic Cooperation 工商咨詢理事會亞太中小企業(yè)峰會
- 3企業(yè)建站的重要性
- 4JavaScript 性能提升技巧
- 5輕型數(shù)據(jù)庫SQLite結合PHP的開發(fā)
- 6網(wǎng)站建設的效果圖設計不好導致的一些后果
- 7萬網(wǎng)云服務器,優(yōu)惠啦!!!
- 8關于HTML5當時狀況的若干關鍵
- 9DedeCms 基于PHP+MySQL的技術開發(fā)
- 10ecshop的數(shù)據(jù)字典
- 11瀏覽器開發(fā)工具的秘密
- 12O2O已經(jīng)成為電子商務網(wǎng)站的下一個掘金點
- 13PHP性能優(yōu)化大全
- 14考證輔導網(wǎng)站制作解決方案
- 15網(wǎng)站運維的小細節(jié)和操作
- 16網(wǎng)站優(yōu)化中友情鏈接需要注意的問題
- 17MySQL InnoDB之事務與鎖詳解
- 18公司網(wǎng)站建成后應該做些什么?
- 19網(wǎng)站制作絕對不可以犯的編程錯誤2
- 20PhoneGap新手總是需要一些基礎問題的解答
- 21最全Facebook圖片存儲架構技術
- 22PHPUnit
- 23PHP與XML聯(lián)手進行網(wǎng)站編程
- 24企業(yè)為什么偏愛須要專業(yè)的網(wǎng)站構造單位做官方網(wǎng)站呢?
- 25每個cookie都是一個名/值對
- 26玩具租賃電商平臺是什么
- 27玩具租賃商城系統(tǒng)需求1
- 28網(wǎng)站建設和營銷帶來的經(jīng)濟效益
- 292014年玩具租賃市場達8億,如何抓住這市場良機?
- 30久途-網(wǎng)站制作流程
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓