文件讀寫php
① php讀寫許可權問題,服務端可以隨意讀寫文件嗎
對於windows下的伺服器,一般就是對目錄做許可權限制,使得匿名訪問伺服器的用戶(就是普通用戶通過瀏覽器訪問伺服器)除了自家的網站目錄之外,對其他目錄沒有讀寫許可權。
對於linux下的伺服器,因為linux的伺服器比如apache等,是以apache這個用戶運行的,linux又有完善的許可權控制策略,對於系統文件(root用戶),其他用戶,除非這個文件或者文件夾對你有讀寫許可權,php才能操作。
當然沒這么簡單,在php的配置文件里還可以配置php能調用哪些對系統敏感的函數,比如列目錄,創建文件等。
未知用戶獲得許可權,就是說明你的網站被黑了么~哈哈
通過一些漏洞,hack拿到你網站的webshell,搞到你連接資料庫的用戶名密碼,那當然就是可以為所欲為了。
對於虛擬空間,php和ftp都有對整個目錄的操作許可權應該,(我沒用過虛擬空間),但是對於這個目錄的父目錄肯定沒許可權了。如果是自己搭建一個伺服器,你就會了解很多了。
慢慢自己會知道的,三兩句也說不清楚
② php那種方法讀寫文件最快
一次性讀取最快
可以採用file_get_contents() 函數
file_get_contents() 函數把整個文件讀入一個字元串中。
例子
<?php
echofile_get_contents("test.txt");
?>
望採納 Thx
③ php 讀寫文件和資料庫哪個快
1、直接讀文件相比資料庫查詢效率更勝一籌,而且文中還沒算上連接和斷開的時間。
2、一次讀取的內容越大,直接讀文件的優勢會越明顯(讀文件時間都是小幅增長,這跟文件存儲的連續性和簇大小等有關系),這個結果恰恰跟天緣預料的相反,說明MYSQL對更大文件讀取可能又附加了某些操作(兩次時間增長了近30%),如果只是單純的賦值轉換應該是差異偏小才對。
3、寫文件和INSERT幾乎不用測試就可以推測出,資料庫效率只會更差。
4、很小的配置文件如果不需要使用到資料庫特性,更加適合放到獨立文件里存取,無需單獨創建數據表或記錄,很大的文件比如圖片、音樂等採用文件存儲更為方便,只把路徑或縮略圖等索引信息放到資料庫里更合理一些。
5、PHP上如果只是讀文件,file_get_contents比fopen、fclose更有效率,不包括判斷存在這個函數時間會少3秒左右。
6、fetch_row和fetch_object應該是從fetch_array轉換而來的,我沒看過PHP的源碼,單從執行上就可以說明fetch_array效率更高,這跟網上的說法似乎相反。
④ PHP如何解決多進程同時讀寫一個文件的方法
/*
*flock(file,lock,block)
*file 必需,規定要鎖定或釋放的已打開的文件
*lock 必需。規定要使用哪種鎖定類型。
*block 可選。若設置為 1 或 true,則當進行鎖定時阻擋其他進程。
*lock
*LOCK_SH 要取得共享鎖定(讀取的程序)
*LOCK_EX 要取得獨占鎖定(寫入的程序)
*LOCK_UN 要釋放鎖定(無論共享或獨占)
*LOCK_NB 如果不希望 flock() 在鎖定時堵塞
/*
if (flock($file,LOCK_EX))
{
fwrite($file,'write more words');
flock($file,LOCK_UN);
}
else
{
//處理錯誤邏輯
}
fclose($file);
)
⑤ 關於PHP讀寫文件
相關
php函數
:
fopen()打開文件。
格式如:fopen("文件路徑","r")。
fopen()函數有參數第一個參數要指明文件,第二個參數可以是r,w等,讀文件時就可以是r,寫文件時可以是w。
fwrite()和
fputs()寫文件。
fclose()
關閉文件
。
fgets()讀取記錄。最常用的是以上這些函數。