網(wǎng)站建設(shè)中PHP的編程8種常見(jiàn)文件操作_PHP教程
推薦:PHP用CURL偽造IP和來(lái)源來(lái)源ip,,,1.php 請(qǐng)求 2.php 。 1.php代碼: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, http://localhost/2.php); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8')); //構(gòu)造IP curl_setopt($ch, CURLOPT_REFE
文件和目錄的操作
PHP處理本地服務(wù)器上的文件和目錄是非常方便的,但有時(shí)候會(huì)出現(xiàn)權(quán)限和路徑相關(guān)的問(wèn)題
1.打開(kāi)文件
resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )
$handle = fopen(filename,mode)//打開(kāi)文件,返回代表此文件的資源的句柄
文件名稱可以使用相對(duì)路徑或者絕對(duì)路徑也可以使用網(wǎng)絡(luò)協(xié)議模式,打開(kāi)模式具有rr+ww+aa+xx+b
在操作二進(jìn)制文件時(shí)如果沒(méi)有指定 'b' 標(biāo)記,可能會(huì)碰到一些奇怪的問(wèn)題,包括壞掉的圖片文件以及關(guān)于 rn 字符的奇怪問(wèn)題。
為移植性考慮,強(qiáng)烈建議在用 fopen() 打開(kāi)文件時(shí)總是使用 'b' 標(biāo)記。
以下是幾種打開(kāi)文件的方式
$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 "打開(kāi)文件{$filename1}成功";
if(!@fopen($filename2,"r"))
echo "打開(kāi)文件{$filename2}不成功";
//////////////////////////////////////////////////////////////////////////
---------------------輸出結(jié)果----------------------------------------
打開(kāi)文件userinfo.txt成功
---------------------------------------------------------------------
2.使用完畢文件后,要顯式的告訴PHP已經(jīng)使用完文件,讓操作系統(tǒng)確保將文件的所有內(nèi)容正確地從緩沖區(qū)刷新到硬盤
使用fclose()關(guān)閉文件,
bool fclose ( resource handle )//關(guān)閉一個(gè)已打開(kāi)的文件指針
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]] )從文件指針中讀取一行并過(guò)濾掉 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ù)
文件指針最初位于文件的開(kāi)頭(0),或者文件的末尾
feof()可以判斷文件是否已經(jīng)到末尾(到末尾后函數(shù)返回TRUE)
filesize()函數(shù)返回文件的大小 5.寫入文件
fwrite()函數(shù)執(zhí)行文件寫入
////////////////////////////代碼部分////////////////////////////////////////
$filename = 'test.txt';
$somec;
// 首先我們要確定文件存在并且可寫。
if (is_writable($filename)) {
// 在這個(gè)例子里,我們將使用添加模式打開(kāi)$filename,
// 因此,文件指針將會(huì)在文件的開(kāi)頭,
// 那就是當(dāng)我們使用fwrite()的時(shí)候,$somecontent將要寫入的地方。
if (!$handle = fopen($filename, 'a')) {
echo "不能打開(kāi)文件 $filename";
exit;
}
// 將$somecontent寫入到我們打開(kāi)的文件中。
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'));
分享:PHP使用PDO連接Access的方法try{ $db = new PDO(odbc:driver={microsoft access driver (*.mdb)};dbq=.getcwd().#db.mdb); echo Connectedn; } catch (Exception $e) { echo Failed:.$e-getMessage(); } 連接成功!如果沒(méi)有,請(qǐng)確認(rèn)PDO擴(kuò)展已安裝,打開(kāi)php.ini,查看有沒(méi)有這么一句:extension=php
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁(yè)面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問(wèn)控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語(yǔ)言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語(yǔ)言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- php筆記之:php數(shù)組相關(guān)函數(shù)的使用
- 十天學(xué)會(huì)php之第六天
- PHP技巧:使用APC緩存優(yōu)化PHP程序
- 淺析PKI加密解密 OpenSSL
- 將IP地址轉(zhuǎn)換為整型數(shù)字的PHP方法、Asp方法和MsSQL方法、MySQL方法
- 如何批量替換相對(duì)地址為絕對(duì)地址
- 如何在HTML中利用js調(diào)用php的內(nèi)容
- 詳解PHP和AJAX創(chuàng)建的RSS聚合器
- 如何使用php判斷服務(wù)器是否是HTTPS連接
- 教你用PHP寫MySQL數(shù)據(jù)庫(kù)的用戶認(rèn)證系統(tǒng)
- 相關(guān)鏈接:
- 教程說(shuō)明:
PHP教程-網(wǎng)站建設(shè)中PHP的編程8種常見(jiàn)文件操作
。