重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
PHP 文件打開/讀取/讀取
專注于為中小企業提供網站建設、成都網站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業濱湖免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了1000+企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
PHP 文件
PHP 文件創建/寫入
在本節中,我們向您講解如何在服務器上打開、讀取以及關閉文件。
PHP Open File - fopen()
打開文件的更好的方法是通過 fopen() 函數。此函數為您提供比 readfile() 函數更多的選項。
在課程中,我們將使用文本文件 "webdictionary.txt":
AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language
fopen() 的第一個參數包含被打開的文件名,第二個參數規定打開文件的模式。如果 fopen() 函數未能打開指定的文件,下面的例子會生成一段消息:
實例
?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");echo fread($myfile,filesize("webdictionary.txt"));fclose($myfile);
?
運行實例
提示:我們接下來將學習 fread() 以及 fclose() 函數。
文件會以如下模式之一打開:
模式描述
r打開文件為只讀。文件指針在文件的開頭開始。
w打開文件為只寫。刪除文件的內容或創建一個新的文件,如果它不存在。文件指針在文件的開頭開始。
a打開文件為只寫。文件中的現有數據會被保留。文件指針在文件結尾開始。創建新的文件,如果文件不存在。
x創建新文件為只寫。返回 FALSE 和錯誤,如果文件已存在。
r+打開文件為讀/寫、文件指針在文件開頭開始。
w+打開文件為讀/寫。刪除文件內容或創建新文件,如果它不存在。文件指針在文件開頭開始。
a+打開文件為讀/寫。文件中已有的數據會被保留。文件指針在文件結尾開始。創建新文件,如果它不存在。
x+創建新文件為讀/寫。返回 FALSE 和錯誤,如果文件已存在。
PHP 讀取文件 - fread()
fread() 函數讀取打開的文件。
fread() 的第一個參數包含待讀取文件的文件名,第二個參數規定待讀取的最大字節數。
如下 PHP 代碼把 "webdictionary.txt" 文件讀至結尾:
fread($myfile,filesize("webdictionary.txt"));PHP 關閉文件 - fclose()
fclose() 函數用于關閉打開的文件。
注釋:用完文件后把它們全部關閉是一個良好的編程習慣。您并不想打開的文件占用您的服務器資源。
fclose() 需要待關閉文件的名稱(或者存有文件名的變量):
?php
$myfile = fopen("webdictionary.txt", "r");// some code to be executed....
fclose($myfile);
?
PHP 讀取單行文件 - fgets()
fgets() 函數用于從文件讀取單行。
下例輸出 "webdictionary.txt" 文件的首行:
實例
?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");echo fgets($myfile);
fclose($myfile);
?
運行實例
注釋:調用 fgets() 函數之后,文件指針會移動到下一行。
PHP 檢查 End-Of-File - feof()
feof() 函數檢查是否已到達 "end-of-file" (EOF)。
feof() 對于遍歷未知長度的數據很有用。
下例逐行讀取 "webdictionary.txt" 文件,直到 end-of-file:
實例
?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");// 輸出單行直到 end-of-file
while(!feof($myfile)) {
echo fgets($myfile) . "br";
}
fclose($myfile);
?
運行實例
PHP 讀取單字符 - fgetc()
fgetc() 函數用于從文件中讀取單個字符。
下例逐字符讀取 "webdictionary.txt" 文件,直到 end-of-file:
實例
?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");// 輸出單字符直到 end-of-file
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?
運行實例
注釋:在調用 fgetc() 函數之后,文件指針會移動到下一個字符。
PHP Filesystem 參考手冊
如需完整的 PHP 文件系統參考手冊,請訪問 W3School 提供的 PHP Filesystem 參考手冊。
①$upload-allowExts = array('jpg', 'gif', 'png', 'jpeg');// 設置附件上傳類型
這樣寫試試。
②不知道你的Thinkphp是哪個版本的。你去看下上傳文件的類里面具體怎么寫的,是UploadFile.class.php文件。看下protected function error($errorNo) 這個方法,也就是提示錯誤的函數,看寫“非法數據對象”是哪里出錯了。有可能不是因為類型的原因。
(不行再問我,QQ617762749)
$arrDenyExts = array("gif", "jpeg", "jpg", "png"); //不允許上傳文件的格式
$temp = explode(".", $_FILES["file"]["name"]); //按點分割文件名,這里根據
//$temp = explode(".","d:\test.jpg"); //按點分割文件名
$extension = end($temp);//獲取最后一個元素,確保是文件格式
$isAllow = true;
foreach($arrDenyExts as $key=$val) {
if($extension==$val) {
$isAllow=false;
break;
}
}
if($isAllow) {
echo "該文件格式允許上傳br/";
} else {
echo "該文件格式不允許上傳br/";
}