關於PHP操作檔案的一些FAQ總結

2021-03-31 08:56:58 字數 2355 閱讀 9073

前言:

php中對各類資料庫的操作有著支援,對檔案的操作也同樣有著很豐富的操作方法,很多朋友現在的操作還是基於檔案操作

可是有的時候在操作檔案的時候還存在不少的困惑和疑點,以下是我在日常編寫過程中碰到的以及壇上朋友所碰到的關於檔案操

作的一些問題收藏吧。

問:如何新建乙個檔案?

答:1、使用fopen("要建立的檔名","引數"),引數可選 w,w+,a,a+

2、使用exec("echo '' > 要建立的檔名");這樣是使用系統方式建立這個檔案,你還可以使用touch這個linux命令來建立

問:為什麼我無法建立檔案?

答:1、如果你使用了fopen建立檔案,是否正確的使用了引數

2、系統許可權問題,請詢問你的webmaster你的ftp目錄是否有寫的許可權

3、ftp許可權問題,你要確認你的php檔案所要寫檔案所在目錄要有寫的許可權,也就是你的ftp軟體登陸後other組要有寫這個許可權,

如果沒有請修改許可權後嘗試

問:如何將檔案讀入陣列?

答:使用file

問:如何將檔案全部讀出?

答:1、使用fread($fp);

2、如果你的php版本》=4.3.0的話可以使用file_get_contents();

問:如何判斷檔案是否存在?

答:使用file_exists();為什麼不使用fopen()來判斷呢?原因是有時候是因為許可權問題導致fopen返回的資料引導我們錯誤的判斷

問:為什麼當我讀取乙個web頁面的時候出錯?

答:1、可能是你的傳遞引數錯,當讀取web頁面的時候你只可以使用r方式讀取頁面

2、確保你要讀取的web頁面可以訪問

答:php提供了一組獲得檔案屬性的方法,例如 filemtime(),fileowner(),filegroup(),filectime(),fileatime()...詳細的使用

請參閱手冊。

問:php開啟檔案後是否可以象c一樣進行檔案「游標」的定位呢?

答:可以的,使用fseek();

問:我想在訪問檔案的時候不允許其他人也訪問此檔案,怎麼辦?

答:1、你可以採用其他方面程式限制使用者接入檔案操作的頁面

2、使用flock();詳細的引數以及使用方法請參閱手冊

問:如何刪除檔案內第一行,或指定一行資料?

答:php並沒有提供這樣的操作方法,不過我們可以通過組合使用,以下**演示我們將刪除檔案"test.dat"中的第三行資料(test.datw

檔案中資料不止三行)

<?php

$filename="test.dat";//定義操作檔案

$delline=3; //要刪除的行數

if(!file_exsits($filename))

$farray=file($filename);//讀取檔案資料到陣列中

for($tmpa=0;$tmpa

以上**演示的是刪除一行檔案,不過你如果仔細的看的話,其實也給你提供了其他的檔案操作的相關提醒~

問:當我試圖開啟乙個不存在的檔案的時候,我如何不讓錯誤顯示出來以避免我的路徑洩露!!

答:在你要開啟檔案的方法前增加@符號用來遮蔽錯誤,@是php提供的錯誤資訊遮蔽的專用符號

或您可以在這個要操作的步驟前增加(通常是在頁首)error_reporting(0);用來遮蔽頁面內所有錯誤資訊的顯示

乙個不推薦的方法就是去修改php.ini(isp除外)

問:我使用的是虛擬主機,我如何防止其他使用者竊取我的資料?

答:建議isp修改php.ini中的open_basedir進行限制,

不推薦的isp設定是將fopen,file等檔案操作加入disable_function中。

問:為什麼我用php建立檔案後我ftp登陸要刪除這些檔案無法刪除??

答:主要是因為php建立的檔案歸屬web使用者組,也就是建立的檔案,並非是你ftp使用者的!!!

這個問題的解決就是,使用php程式的chmod,unlink等方式進行處理,建議使用者在使用php建立檔案的時候

記得chmod檔案許可權,建議為777

答:其實這個主要還是使用了file,結合explode進行資料讀取與分割的典型範例而已。

問:如何更改檔名?

答:rename();

問:如何刪除檔案?

答:unlink(); exec("del(rm -vf) filename");注:rm -vf為linux下使用

問:如何清空檔案?

答:使用fopen(filename,"w");或exec("echo '' > filename");

希望你可以向上找找,將我上面的continue修改為替換變數資料就可以了:)

關於檔案的一些操作

今天遇到一些關於檔案的知識點 codeblocks16.0裡面不支援 include只有 include使用時要把std包包含在裡面 using namespace std 而vc6.0卻不能使用這個包 下面是課件上的一些知識點,以後用到的時候再拿出來看看吧 include void main in...

PHP對檔案的一些操作

alter table guitarwars drop column score 從資料庫中刪除乙個列 add columu新增乙個新列 change column修改一列 modify columu 修改乙個資料表中某一列的資料型別或位置。files 是內建的php超級全域性變數,通過它將一些有用...

python 關於檔案的一些簡單操作

file1 open test.txt w 覆蓋原有內容寫入,指標處於檔案開頭 開啟乙個檔案用於讀寫。如果檔案存在,刪除重新編輯,否則新建寫入 file1.write test1 在開啟的test.txt中寫入test1內容 file1.close 關閉檔案file1,使用 open 方法一定要保證...