国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
文件系統(tǒng)用途
文件系統(tǒng)函數(shù)用法詳述
1.基本的判斷函數(shù)
2.文件相關(guān)信息獲取
?3.文件路徑相關(guān)函數(shù)
4. 文件的創(chuàng)建刪除修改
文件讀寫
1. file_get_contents(string)
2. file_put_contents(filename,content)
3.file(filename)
4.fopen(filename,mode)
5.fwrite(file,content)
6. fread(file,size)
7.fgets(file)
首頁 後端開發(fā) php教程 PHP高級特性2之文件處理

PHP高級特性2之文件處理

Jun 13, 2016 pm 12:21 PM
echo file nbsp

PHP高級特性二之文件處理

PHP中的文件處理也是一個(gè)相當(dāng)重要的模塊,這一篇的主要內(nèi)容就是PHP中文件系統(tǒng)的簡介。

文件系統(tǒng)用途

1. 項(xiàng)目處理都離不開文件處理

2. 可以用文件長時(shí)間保存數(shù)據(jù)

3. 建立緩存,在服務(wù)器中進(jìn)行文件操作

文件系統(tǒng)函數(shù)用法詳述

1.基本的判斷函數(shù)

is_dir?— 判斷給定文件名是否是一個(gè)目錄

is_file?— 判斷給定文件名是否為一個(gè)文件

is_executable?— 判斷給定文件名是否可執(zhí)行

is_link?— 判斷給定文件名是否為一個(gè)符號連接

is_readable?— 判斷給定文件名是否可讀

is_uploaded_file?— 判斷文件是否是通過 HTTP POST 上傳的

is_writable?— 判斷給定的文件名是否可寫

is_writeable?— is_writable 的別名

2.文件相關(guān)信息獲取

file_exists?— 檢查文件或目錄是否存在

fileatime?— 取得文件的上次訪問時(shí)間

filectime?— 取得文件的 inode 修改時(shí)間

filegroup?— 取得文件的組

fileinode?— 取得文件的 inode

filemtime?— 取得文件修改時(shí)間

fileowner?— 取得文件的所有者

fileperms?— 取得文件的權(quán)限

filesize?— 取得文件大小

filetype?— 取得文件類型

下面我們寫一個(gè)例子,傳入文件名,打印它的詳細(xì)信息。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
????function getFileInfo($filename){
????????if(!file_exists($filename)){
????????????echo '文件'.($filename).'不存在';
????????????return;
????????}
?
????????if(is_file($filename)){
????????????echo $filename.'是一個(gè)文件';
????????}
?
????????if(is_dir($filename)){
????????????echo $filename.'是一個(gè)目錄';
????????}
?
????????if(is_executable($filename)){
????????????echo $filename.'是可執(zhí)行文件';
????????}else{
????????????echo $filename.'不是可執(zhí)行文件';
????????}
?
????????if(is_readable($filename)){
????????????echo $filename.'是可讀的';
????????}else{
????????????echo $filename.'不是可讀的';
????????}
?
????????if(is_writable($filename)){
????????????echo $filename.'是可寫入的';
????????}else{
????????????echo $filename.'不是可寫入的';
????????}
?
????????echo '文件'.$filename.'的大小是'.getFileSize(filesize($filename)).'';
????????echo '文件'.$filename.'的類型是'.filetype($filename).'';
????????echo '文件'.$filename.'的所有者是'.fileowner($filename).'';
????????echo '文件'.$filename.'的最后訪問時(shí)間為'.getTime(fileatime($filename)).'';
????????echo '文件'.$filename.'的inode是'.fileinode($filename).'';
????????echo '文件'.$filename.'的修改時(shí)間是'.getTime(filemtime($filename)).'';
????????echo '文件'.$filename.'的權(quán)限是'.fileperms($filename).'';
????}
????
????function getTime($time){
????????return date('Y-m-d H:i:s',$time);
????}
?
????function getFileSize($size){
????????$dw = 'B';
????????if($size>=pow(2,40)){
????????????$size=round($size/pow(2,40),2);
????????????$dw = 'PB';
????????}else if($size>=pow(2,30)){
????????????$size=round($size/pow(2,30),2);
????????????$dw = 'TB';
????????}else if($size>=pow(2,20)){
????????????$size=round($size/pow(2,20),2);
????????????$dw = 'GB';
????????}else if($size>=pow(2,10)){
????????????$size=round($size/pow(2,10),2);
????????????$dw = 'MB';
????????}
????????return $size.$dw;
????}
????getFileInfo('1.php');

運(yùn)行結(jié)果

1.php是一個(gè)文件
1.php不是可執(zhí)行文件
1.php是可讀的
1.php不是可寫入的
文件1.php的大小是2MB
文件1.php的類型是file
文件1.php的所有者是1000
文件1.php的最后訪問時(shí)間為2015-03-04 12:58:33
文件1.php的inode是536185
文件1.php的修改時(shí)間是2015-03-04 12:58:32
文件1.php的權(quán)限是33204

?3.文件路徑相關(guān)函數(shù)

相對路徑:相對于當(dāng)前目錄的上級和下級目錄

. 當(dāng)前目錄
.. 上一級目錄

路徑分隔符號

linux/Unix “/”
windows “\”
不管是什么操作系統(tǒng)PHP的目錄分割符號都支技 / (Linux)

絕對路徑:可以指的操作系統(tǒng)的根,也可以指的是存放網(wǎng)站的文檔根目錄

如果是在服務(wù)器中執(zhí)行(通過PHP文件處理函數(shù)執(zhí)行)路徑 則 “根”指的就是操作系統(tǒng)的根
如果程序是下載的客戶端,再訪問服務(wù)器中的文件時(shí),只有通過Apache訪問,“根”也就指的是文檔根目錄

三個(gè)相關(guān)函數(shù)

basename?— 返回路徑中的文件名部分

dirname?— 返回路徑中的目錄部分

pathinfo?— 返回文件路徑的信息

例如下面的例子

?
1
2
3
4
5
6
7
8
????$url1="./aaa/bbb/index.php";
????$url2="../www/yyy/login.rar";
????$url3="c:/appserv/www/demo.html";
????$url4="http://localhost/yyy/www.gif";
????echo basename($url1);
????echo basename($url2);
????echo basename($url3);
????echo basename($url4);

運(yùn)行結(jié)果

index.php
login.rar
demo.html
www.gif

可以看出,basename這個(gè)函數(shù)返回的是文件的名,也就是最后一個(gè)項(xiàng)目。
下面我們看一下dirname的用法

?
1
2
3
4
5
6
7
8
????$url1="./aaa/bbb/index.php";
????$url2="../www/yyy/login.rar";
????$url3="c:/appserv/www/demo.html";
????$url4="http://localhost/yyy/www.gif";
????echo dirname(dirname($url1));
????echo dirname($url2);
????echo dirname($url3);
????echo dirname($url4);

運(yùn)行結(jié)果

./aaa
../www/yyy
c:/appserv/www
http://localhost/yyy

可以發(fā)現(xiàn),dirname這個(gè)函數(shù)可以多層嵌套使用,返回的就是它所在的路徑,即除了最后一項(xiàng)之外所有的項(xiàng)。

另外 pathinfo的以上所有信息都可以獲取到,另外還包括了文件名和擴(kuò)展名

比如下面的結(jié)果

Array ( [dirname] => ../www/yyy [basename] => login.rar [extension] => rar [filename] => login )

4. 文件的創(chuàng)建刪除修改

touch?— 創(chuàng)建一個(gè)文件

unlink?— 刪除文件

rename?— 重命名一個(gè)文件或目錄

copy?—?拷貝文件

例如下面的例子

?
1
2
3
4
5
touch("./php.apahce"); //創(chuàng)建文件
unlink("C:/AppServ/www/xsphp/apache.php");??//刪除文件
rename("./test.txt", "d:/test2.txt");????//重命名文件
copy("cache.txt", "./cache5.txt");?? //復(fù)制文件
chmod("a.txt",755);?? //設(shè)置文件權(quán)限

權(quán)限相關(guān)內(nèi)容

rwx 表這個(gè)文件的擁有者 r讀 w寫 x執(zhí)行
rwx 表這個(gè)文件的擁有者所在的組 r讀 w寫 x執(zhí)行
rwx 其它用戶對這個(gè)為文件的權(quán)限 r讀 w寫 x執(zhí)行

文件讀寫

1. file_get_contents(string)

傳入文件名,直接得到文件中的文本信息,返回的內(nèi)容即為文件中的文本。

例如

?
1
2
3
4
$str = file_get_contents("1.txt");
echo $str;
?>

則直接打開了 1.txt 文件中的內(nèi)容,并返回文件中的文本信息。

如果文件不存在,那么會(huì)提示

Warning: file_get_contents(2.txt): failed to open stream: No such file or directory

同樣,文件還可以是遠(yuǎn)程文件,例如,參數(shù)傳入 http://www.qq.com

即可以呈現(xiàn)騰訊網(wǎng)的首頁內(nèi)容。

缺點(diǎn):不能讀取指定部分的內(nèi)容,一次性全部讀取。

2. file_put_contents(filename,content)

寫入文件,filename是寫入文件的文件名,content是寫入內(nèi)容,返回值是成功寫入的字符長度。

?
1
2
3
echo file_put_contents("2.txt",'abcd');
?>

2.txt 文件如果不存在,那么則會(huì)創(chuàng)建這個(gè)文件并寫入 abcd 這個(gè)字符串,返回 4 ,為字符串的長度。 如果文件存在,則會(huì)將文件清空,然后寫入字符串,返回寫入長度。

缺點(diǎn):不能以追加的方式寫入文件。

3.file(filename)

file是直接打開某一個(gè)文件,返回的結(jié)果是一個(gè)數(shù)組,每一行是數(shù)組的一個(gè)元素。也就是說,獲取行數(shù)只需要輸出數(shù)組的大小即可。例如

?
1
2
3
4
5
$str = file("1.txt");
var_dump($str);
echo count($str);
?>

即可得到數(shù)組形式的行內(nèi)容,而且輸出了行數(shù)。

缺點(diǎn):不能讀取指定部分的內(nèi)容。

4.fopen(filename,mode)

filename是文件名,可以是路徑加名,也可以是遠(yuǎn)程服務(wù)器文件。

mode是打開文件的方式

r,以只讀模式打開文件
r+,除了讀,還可以寫入。
w, 以只寫的方式打開,如果文件不存在,則創(chuàng)建這個(gè)文件,并寫放內(nèi)容,如果文件存在,并原來有內(nèi)容,則會(huì)清除原文件中所有內(nèi)容,再寫入(打開已有的重要文件)
w+,除了可以寫用fwrite, 還可以讀fread
a,以只寫的方式打開,如果文件不存在,則創(chuàng)建這個(gè)文件,并寫放內(nèi)容,如果文件存在,并原來有內(nèi)容,則不清除原有文件內(nèi)容,再原有文件內(nèi)容的最后寫入新內(nèi)容,(追加)
a+,除了可以寫用fwrite, 還可以讀fread
b,以二進(jìn)制模式打開文件(圖,電影)
t,以文本模式打開文件

注意:

r+具有讀寫屬性,從文件頭開始寫,保留原文件中沒有被覆蓋的內(nèi)容;

w+具有讀寫屬性,寫的時(shí)候如果文件存在,會(huì)被清空,從頭開始寫。

返回的是一個(gè)文件資源

5.fwrite(file,content)

文件寫入功能,file是文件資源,用fopen函數(shù)獲取來的,content是寫入內(nèi)容。同 fputs 函數(shù)。

例如

?
1
2
3
4
5
6
7
8
9
php
$file = fopen("1.txt","r+");
$result = fwrite($file,"xx");
if($result){
echo "Success";
}else
echo "Failed";
}
?>

則從頭開始寫入資源,即把前兩個(gè)字符設(shè)為 xx

6. fread(file,size)

讀取文件指定部分的長度,file是文件資源,由fopen返回的對象,size是讀取字符的長度。

例如

?
1
2
3
4
5
$file = fopen("1.txt","r");
$content = fread($file,filesize("1.txt"));
echo $content;
?>

不過,上述的 filesize 方法只能獲取本地文件大小,對于遠(yuǎn)程文件的讀取就要換一種方法了。

例如

?
1
2
3
4
5
6
7
8
$file = fopen("http://www.qq.com","r");
$str = "";
while(!feof($file)){ ?//判斷時(shí)候到了文件結(jié)尾
$str.=fread($file,1024);
}
echo $str;
?>

?

7.fgets(file)

file是文件資源,每次讀取一行。例如我們讀取出騰訊首頁一共有多少行。

?
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Windows 11 上調(diào)整視窗邊框設(shè)定的方法:變更顏色和大小 Windows 11 上調(diào)整視窗邊框設(shè)定的方法:變更顏色和大小 Sep 22, 2023 am 11:37 AM

Windows11將清新優(yōu)雅的設(shè)計(jì)帶到了最前沿;現(xiàn)代介面可讓您個(gè)性化和更改最精細(xì)的細(xì)節(jié),例如視窗邊框。在本指南中,我們將討論逐步說明,以協(xié)助您在Windows作業(yè)系統(tǒng)中建立反映您的風(fēng)格的環(huán)境。如何更改視窗邊框設(shè)定?按+開啟“設(shè)定”應(yīng)用程式。 WindowsI前往個(gè)人化,然後按一下顏色設(shè)定。顏色變更視窗邊框設(shè)定視窗11「寬度=」643「高度=」500「>找到在標(biāo)題列和視窗邊框上顯示強(qiáng)調(diào)色選項(xiàng),然後切換它旁邊的開關(guān)。若要在「開始」功能表和工作列上顯示主題色,請開啟「在開始」功能表和工作列上顯示主題

解決方法:您的組織要求您更改 PIN 碼 解決方法:您的組織要求您更改 PIN 碼 Oct 04, 2023 pm 05:45 PM

「你的組織要求你更改PIN訊息」將顯示在登入畫面上。當(dāng)在使用基於組織的帳戶設(shè)定的電腦上達(dá)到PIN過期限制時(shí),就會(huì)發(fā)生這種情況,在該電腦上,他們可以控制個(gè)人設(shè)備。但是,如果您使用個(gè)人帳戶設(shè)定了Windows,則理想情況下不應(yīng)顯示錯(cuò)誤訊息。雖然情況並非總是如此。大多數(shù)遇到錯(cuò)誤的使用者使用個(gè)人帳戶報(bào)告。為什麼我的組織要求我在Windows11上更改我的PIN?可能是您的帳戶與組織相關(guān)聯(lián),您的主要方法應(yīng)該是驗(yàn)證這一點(diǎn)。聯(lián)絡(luò)網(wǎng)域管理員會(huì)有所幫助!此外,配置錯(cuò)誤的本機(jī)原則設(shè)定或不正確的登錄項(xiàng)目也可能導(dǎo)致錯(cuò)誤。即

如何在 Windows 11 上變更標(biāo)題列顏色? 如何在 Windows 11 上變更標(biāo)題列顏色? Sep 14, 2023 pm 03:33 PM

預(yù)設(shè)情況下,Windows11上的標(biāo)題列顏色取決於您選擇的深色/淺色主題。但是,您可以將其變更為所需的任何顏色。在本指南中,我們將討論三種方法的逐步說明,以更改它並個(gè)性化您的桌面體驗(yàn),使其具有視覺吸引力。是否可以更改活動(dòng)和非活動(dòng)視窗的標(biāo)題列顏色?是的,您可以使用「設(shè)定」套用變更活動(dòng)視窗的標(biāo)題列顏色,也可以使用登錄編輯程式變更非活動(dòng)視窗的標(biāo)題列顏色。若要了解這些步驟,請前往下一部分。如何在Windows11中變更標(biāo)題列的顏色? 1.使用「設(shè)定」應(yīng)用程式按+開啟設(shè)定視窗。 WindowsI前往“個(gè)人化”,然

Windows 11 上啟用或停用工作列縮圖預(yù)覽的方法 Windows 11 上啟用或停用工作列縮圖預(yù)覽的方法 Sep 15, 2023 pm 03:57 PM

工作列縮圖可能很有趣,但它們也可能分散注意力或煩人??紤]到您將滑鼠懸停在該區(qū)域的頻率,您可能無意中關(guān)閉了重要視窗幾次。另一個(gè)缺點(diǎn)是它使用更多的系統(tǒng)資源,因此,如果您一直在尋找一種提高資源效率的方法,我們將向您展示如何停用它。不過,如果您的硬體規(guī)格可以處理它並且您喜歡預(yù)覽版,則可以啟用它。如何在Windows11中啟用工作列縮圖預(yù)覽? 1.使用「設(shè)定」應(yīng)用程式點(diǎn)擊鍵並點(diǎn)選設(shè)定。 Windows按一下系統(tǒng),然後選擇關(guān)於。點(diǎn)選高級系統(tǒng)設(shè)定。導(dǎo)航至“進(jìn)階”選項(xiàng)卡,然後選擇“效能”下的“設(shè)定”。在「視覺效果」選

OOBELANGUAGE錯(cuò)誤Windows 11 / 10修復(fù)中出現(xiàn)問題的問題 OOBELANGUAGE錯(cuò)誤Windows 11 / 10修復(fù)中出現(xiàn)問題的問題 Jul 16, 2023 pm 03:29 PM

您是否在Windows安裝程式頁面上看到「出現(xiàn)問題」以及「OOBELANGUAGE」語句? Windows的安裝有時(shí)會(huì)因此類錯(cuò)誤而停止。 OOBE表示開箱即用的體驗(yàn)。正如錯(cuò)誤提示所表示的那樣,這是與OOBE語言選擇相關(guān)的問題。沒有什麼好擔(dān)心的,你可以透過OOBE螢?zāi)槐旧淼钠猎]冊表編輯來解決這個(gè)問題??焖傩迯?fù)–1.點(diǎn)選OOBE應(yīng)用底部的「重試」按鈕。這將繼續(xù)進(jìn)行該過程,而不會(huì)再打嗝。 2.使用電源按鈕強(qiáng)制關(guān)閉系統(tǒng)。系統(tǒng)重新啟動(dòng)後,OOBE應(yīng)繼續(xù)。 3.斷開系統(tǒng)與網(wǎng)際網(wǎng)路的連接。在脫機(jī)模式下完成OOBE的所

Windows 11 上的顯示縮放比例調(diào)整指南 Windows 11 上的顯示縮放比例調(diào)整指南 Sep 19, 2023 pm 06:45 PM

在Windows11上的顯示縮放方面,我們都有不同的偏好。有些人喜歡大圖標(biāo),有些人喜歡小圖標(biāo)。但是,我們都同意擁有正確的縮放比例很重要。字體縮放不良或圖像過度縮放可能是工作時(shí)真正的生產(chǎn)力殺手,因此您需要知道如何自訂以充分利用系統(tǒng)功能。自訂縮放的優(yōu)點(diǎn):對於難以閱讀螢?zāi)簧系奈淖值娜藖碚f,這是一個(gè)有用的功能。它可以幫助您一次在螢?zāi)簧喜榭锤鄡?nèi)容。您可以建立僅適用於某些監(jiān)視器和應(yīng)用程式的自訂擴(kuò)充功能設(shè)定檔??梢詭椭岣叩碗A硬體的效能。它使您可以更好地控制螢?zāi)簧系膬?nèi)容。如何在Windows11

10種在 Windows 11 上調(diào)整亮度的方法 10種在 Windows 11 上調(diào)整亮度的方法 Dec 18, 2023 pm 02:21 PM

螢?zāi)涣炼仁鞘褂矛F(xiàn)代計(jì)算設(shè)備不可或缺的一部分,尤其是當(dāng)您長時(shí)間注視螢?zāi)粫r(shí)。它可以幫助您減輕眼睛疲勞,提高易讀性,並輕鬆有效地查看內(nèi)容。但是,根據(jù)您的設(shè)置,有時(shí)很難管理亮度,尤其是在具有新UI更改的Windows11上。如果您在調(diào)整亮度時(shí)遇到問題,以下是在Windows11上管理亮度的所有方法。如何在Windows11上變更亮度[10種方式解釋]單一顯示器使用者可以使用下列方法在Windows11上調(diào)整亮度。這包括使用單一顯示器的桌上型電腦系統(tǒng)以及筆記型電腦。讓我們開始吧。方法1:使用操作中心操作中心是訪問

如何修復(fù)Windows伺服器中的啟動(dòng)錯(cuò)誤代碼0xc004f069 如何修復(fù)Windows伺服器中的啟動(dòng)錯(cuò)誤代碼0xc004f069 Jul 22, 2023 am 09:49 AM

Windows上的啟動(dòng)過程有時(shí)會(huì)突然轉(zhuǎn)向顯示包含此錯(cuò)誤代碼0xc004f069的錯(cuò)誤訊息。雖然啟動(dòng)程序已經(jīng)聯(lián)機(jī),但一些運(yùn)行WindowsServer的舊系統(tǒng)可能會(huì)遇到此問題。透過這些初步檢查,如果這些檢查不能幫助您啟動(dòng)系統(tǒng),請?zhí)街饕鉀Q方案以解決問題。解決方法–關(guān)閉錯(cuò)誤訊息和啟動(dòng)視窗。然後,重新啟動(dòng)電腦。再次從頭開始重試Windows啟動(dòng)程序。修復(fù)1–從終端啟動(dòng)從cmd終端啟動(dòng)WindowsServerEdition系統(tǒng)。階段–1檢查Windows伺服器版本您必須檢查您使用的是哪種類型的W

See all articles