PHP學(xué)習(xí)文件處理與文件上傳 課件第1/2頁(yè)
Jun 13, 2016 pm 12:28 PM
????PHP對(duì)文件的處理
PHP?在服務(wù)器端文件的應(yīng)用上,相關(guān)的范疇不僅僅在于用戶與服務(wù)器資料庫(kù)間的各種連接存取操作,也可以通過(guò)?PHP?內(nèi)建的文件處理函數(shù),來(lái)進(jìn)行一般文件處理操作。
basename?--?返回路徑中的文件名部分
語(yǔ)法格式:$path?=?"/home/httpd/html/index.php";
??$file?=?basename($path);????????//?$file?is?set?to?"index.php"
??$file?=?basename($path,".php");?//?$file?is?set?to?"index"
pathinfo():分析文件當(dāng)前路徑
語(yǔ)法格式:$path_parts?=?pathinfo("/www/htdocs/index.html");
??echo?$path_parts["dirname"]?.?"\n";??/www/htdocs??文件路徑
??echo?$path_parts["basename"]?.?"\n";??index.html??文件與擴(kuò)展名
??echo?$path_parts["extension"]?.?"\n";??html????文件格式
????文件類型與相關(guān)信息
filesize():計(jì)算文件的大?。╞yte)
語(yǔ)法格式:$bytes=filesize(“a.txt”);
??echo?$bytes?????round($bytes/1024,2);
fileatime():文件最后一次訪問(wèn)時(shí)間(時(shí)間戳)
語(yǔ)法格式:echo?date(“Y-m-d?g:i:sa”,fileatime);
filectime():文件建立時(shí)間
語(yǔ)法格式:echo?date(“Y-m-d?g:i:sa”,filectime);
filemtime():文件最后一次更新時(shí)間
語(yǔ)法格式:echo?date(“Y-m-d?g:i:sa”,filemtime);
fileperms():文件屬性以及權(quán)限10進(jìn)制
語(yǔ)法格式:echo?substr(base_convert(fileperms(a.txt),10,8),3);
fileowner():文件所有者的uid(僅在Linux系統(tǒng)下有用)
語(yǔ)法格式:echo?fileowner(“a.txt”);
????文件的操作
'r'?只讀方式打開,將文件指針指向文件頭。??
'r+'?讀寫方式打開,將文件指針指向文件頭。??
'w'?寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。??
'w+'?讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。??
'a'?寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。??
'a+'?讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。??
'x'???創(chuàng)建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則?fopen()?調(diào)用失敗并返回?FALSE,并生成一條?E_WARNING?級(jí)別的錯(cuò)誤信息。如果文件不存在則嘗試創(chuàng)建之。這和給?底層的?open(2)?系統(tǒng)調(diào)用指定?O_EXCL|O_CREAT?標(biāo)記是等價(jià)的。此選項(xiàng)被?PHP?4.3.2?以及以后的版本所支持,僅能用于本地文件。??
'x+'???創(chuàng)建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則?fopen()?調(diào)用失敗并返回?FALSE,并生成一條?E_WARNING?級(jí)別的錯(cuò)誤信息。如果文件不存在則嘗試創(chuàng)建之。這和給?底層的?open(2)?系統(tǒng)調(diào)用指定?O_EXCL|O_CREAT?標(biāo)記是等價(jià)的。此選項(xiàng)被?PHP?4.3.2?以及以后的版本所支持,僅能用于本地文件。??
fopen()?--?打開文件或者?URL??
fclose()?--?關(guān)閉一個(gè)已打開的文件指針
fread()?--?讀取文件內(nèi)容
fwrite()--寫入文件
語(yǔ)法格式:if(!$f=@fopen("file03.php","x")){//打開一個(gè)文件?x方法寫入
????die("文件讀取失敗");????//讀取失敗
??}
??fwrite($f,"kkkkkkkkkk");??//向那個(gè)文件寫??寫什么
??echo?fread($f,10);????//讀取這個(gè)文件的內(nèi)容
??fclose($f);??????關(guān)閉打開文件
file()?--?把整個(gè)文件讀入一個(gè)數(shù)組中
語(yǔ)法格式:$arr=file("file03.php");
??print_r($arr);?//讀取文件返回?cái)?shù)組
readfile()?--讀入一個(gè)文件并寫入到輸出緩沖。?
語(yǔ)法格式:$str=readfile("file03.php");
??echo?$str;??輸出
一個(gè)文件記數(shù)器的寫法:
$f=fopen("file03.php","r");
??$i=fread($f,1000);
??echo?"這是您第{$i}次訪問(wèn)";
??fclose($f);
??$f=fopen("file03.php","w");??
??$i++;
??fwrite($f,$i);
??fclose($f);
````````````````````````````````````````
file_get_contents()?–?將整個(gè)文件讀入一個(gè)字符串
語(yǔ)法格式:file_get_contents(文件名稱或URL)
file_put_contents()?–?將一個(gè)字符串寫入文件,和依次調(diào)用?fopen(),fwrite()?以及?fclose()?功能一樣
file_put_contents(文件名稱,寫入數(shù)據(jù))
feof()?--?測(cè)試文件指針是否到了文件結(jié)束的位置
ftell()?--?返回文件指針讀/寫的位置
語(yǔ)法格式ftell(文件指針)
flock()?--?輕便的咨詢文件鎖定
語(yǔ)法格式:flock(文件指針,控制參數(shù))
文件指針:是一個(gè)已經(jīng)打開(fopen)的文件指針控制參數(shù):
“LOCK_SH”表示要取得共享鎖定(讀取程序),(PHP4.0.1以前版本設(shè)置1)。?
“LOCK_EX”表示要取得獨(dú)占鎖定(寫入程序),(PHP4.0.1以前版本中設(shè)置為?2)。?
“LOCK_UN”表示要釋放鎖定(無(wú)論共享或獨(dú)占),(PHP4.0.1以前版本中設(shè)置為?3)。?
“LOCK_NB”表示如果你不希望?flock()?在鎖定時(shí)堵塞,則給控制參數(shù)再加上這個(gè)參數(shù)
fseek(?)?--?在文件指針中定位
語(yǔ)法結(jié)構(gòu):??fseek(文件指針,移動(dòng)字元數(shù)?[,起始位置常數(shù)])
文件指針:不能用于在?fopen()?中以?“http://”?或?“ftp://”?格式打開所返回的文件指針。
移動(dòng)字元數(shù):為正數(shù)時(shí),將文件指針向前移動(dòng)指定個(gè)數(shù):為負(fù)數(shù)時(shí),將文件指針向后移動(dòng)指定個(gè)數(shù):
起始位置常數(shù):?
SEEK_CUR?-?設(shè)定位置為當(dāng)前位置。?
SEEK_SET?-?設(shè)定位置等于文件開頭。(默認(rèn)值)
SEEK_END?-?設(shè)定位置為文件尾。
rewind(?)?--?倒回文件指針的位置,也就是將文件指針移向文件的開頭位置。?
語(yǔ)法結(jié)構(gòu):??rewind(文件指針)
注意:如果將文件以附加(“a”?或者?“a+”)模式打開,寫入文件的任何數(shù)據(jù)總是會(huì)被附加在后面,不管文件指針的位置
chgrp(?)?--?改變文件所屬的組
??語(yǔ)法結(jié)構(gòu):chgrp(文件名稱,群組名稱)
filegroup(?)?--?取得文件的組
??語(yǔ)法結(jié)構(gòu):filegroup(文件名稱)
chmod(?)?--?改變文件模式
??語(yǔ)法結(jié)構(gòu):chmod(文件名稱,權(quán)限常數(shù))755??666
chown(?)?--?改變文件的所有者
??語(yǔ)法結(jié)構(gòu):chown(文件名稱,使用者)
fileowner(?)?--?取得文件的所有者
??語(yǔ)法結(jié)構(gòu):fileowner(文件名稱)
posix_getpwuid()?來(lái)將其解析為用戶名。
??copy(?)?--?拷貝文件
??語(yǔ)法結(jié)構(gòu):copy(來(lái)源文件,目的文件)
??返回類型:bool型,如果成功則返回?TRUE,失敗則返回?FALSE。
??參數(shù)說(shuō)明:將來(lái)源文件拷貝到目的文件。
??unlink(?)?--?刪除文件
??語(yǔ)法結(jié)構(gòu):unlink(目標(biāo)文件)
??返回類型:bool型,如果成功則返回?TRUE,失敗則返回?FALSE。
??參數(shù)說(shuō)明:刪除指定的目標(biāo)文件
??rename(?)?--?重命名一個(gè)文件或目錄
??語(yǔ)法結(jié)構(gòu):rename(舊文件名,新文件名)
??返回類型:bool型,如果成功則返回?TRUE,失敗則返回?FALSE。
??參數(shù)說(shuō)明:嘗試把舊文件名重命名為新文件名。
文件屬性處理
file_exists(?)?--?檢查文件或目錄是否存在
??語(yǔ)法結(jié)構(gòu):file_exists(文件名稱)
??返回類型:bool型,若存在返回?true,否則返回?false。
filesize(?)?--?取得文件大小
??語(yǔ)法結(jié)構(gòu):filesize(文件名稱)
??返回類型:返回文件大小字節(jié)數(shù),若出錯(cuò)返回?false.
filetype(?)?--?取得文件類型
???語(yǔ)法結(jié)構(gòu):filetype(文件名稱)
???返回類型:返回文件類型??赡艿闹涤?fifo,char,dir,block,link,file?和?unknown。?出錯(cuò)則返回?false
is_dir(?)?--?判斷給定文件名是否是一個(gè)目錄
??語(yǔ)法結(jié)構(gòu):is_dir(名稱)
??返回類型:如果文件名存在并且是一個(gè)目錄則返回?true,否則返回?false。
is_executable(?)?--?判斷給定文件名是否可執(zhí)行
???語(yǔ)法結(jié)構(gòu):is_executable(名稱)
????返回類型:如果文件存在且可執(zhí)行則返回?TRUE,否則返回?FALSE。??
is_file(?)?--?判斷給定文件名是否為一個(gè)正常的文件
??語(yǔ)法結(jié)構(gòu):is_file(名稱)??
??返回類型:如果文件存在且為正常的文件則返回?TRUE。
is_link(?)?--?判斷給定文件名是否為一個(gè)符號(hào)連接
??語(yǔ)法結(jié)構(gòu):is_link(名稱)???
??返回類型:如果文件存在并且是一個(gè)符號(hào)連接則返回?true。
is_readable(?)?--?判斷給定文件名是否可讀
??語(yǔ)法結(jié)構(gòu):is_readable(文件名稱)??
??返回類型:如果文件存在并且可讀則返回?TRUE。
is_writable(?)?--?判斷給定的文件名是否可寫
??語(yǔ)法結(jié)構(gòu):is_writable(文件名稱)??
??返回類型:如果文件存在并且可寫則返回?TRUE。
????實(shí)現(xiàn)iterator接口的目錄讀取
Iterator接口的標(biāo)準(zhǔn)方法
current():返回當(dāng)前列表(list)中的元素值。
next():用于在一個(gè)列表中向下移動(dòng)一個(gè)位置。
valid():檢測(cè)在當(dāng)前列表中是否還有下一個(gè)元素,如果有,返回true,否則返回false。
rewind():可以訪問(wèn)指定特征的元素列表,在開始操作iterator時(shí),會(huì)將指針設(shè)置在頂部。

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tostaycurrentwithphpdevelopmentsandbestpractices, followeyNewsssourcesLikePhp.netandphpweekly, engageWithCommunitiesonforumsandconference, keeptoolingupdatedandgraduallyAdoptNewFeatures, dan readribcoursourcourceSource

Phpbecamepopularforwebdevelopmentduetoitseaseoflearning, seamlessintegrationwithhtml, widespreadhostingsupport, andalargeecosystemincludingframeworkslikelaravelandcmsplatformsLikeWordPress.itexcelsinhandessubmissions

TosetTheRightTimeZoneinPhp, USEDATE_DEFAULT_TIMEZONE_SET () functionAtthestArtAfyourscriptwithavalididentifiersuchas'america/new_york'.1.usedate_default_timeSet ()

TOVALIDATEUSERIputInphp, UsEbuilt-InvalidationFunctionsLikeFilter_var () danFilter_Input (), applyRegularExpressionsforcustomformatssuchasususerorphonenumbers, checkdatatypesfornumericressplimeSpriceSprice, setLengthacheAngeAgeorpriceSprice, setLengthacheArpesenprice,

ThPhpFunctionserialize () andUnserialize () diselaraskanToConvertComplexDataStructructDestoresIntoStorasandabackagain.1.Serialize () C overtsdatalikeCarraysorObjectSrayStringContainingTyPeanStructureStructureStructureStructure.2.2Serialize ()

Anda boleh membenamkan kod PHP ke dalam fail HTML, tetapi pastikan fail itu mempunyai lanjutan .php supaya pelayan dapat menghuraikannya dengan betul. Gunakan tag standard untuk membungkus kod PHP, masukkan kandungan dinamik di mana sahaja di HTML. Di samping itu, anda boleh menukar PHP dan HTML beberapa kali dalam fail yang sama untuk merealisasikan fungsi dinamik seperti rendering bersyarat. Pastikan anda memberi perhatian kepada konfigurasi pelayan dan ketepatan sintaks untuk mengelakkan masalah yang disebabkan oleh label pendek, kesilapan tanda petikan atau label akhir yang ditinggalkan.

Kunci untuk menulis kod PHP yang bersih dan mudah dijaga terletak pada penamaan yang jelas, berikutan piawaian, struktur yang munasabah, menggunakan komen dan kesesuaian yang baik. 1. Gunakan pembolehubah, fungsi dan nama kelas yang jelas, seperti $ userData dan calculateToTalPrice (); 2. Ikuti gaya kod bersatu piawai PSR-12; 3. Pecahkan struktur kod mengikut tanggungjawab, dan aturnya menggunakan katalog MVC atau Laravel; 4. Elakkan kod gaya mi dan memecah logik ke dalam fungsi kecil dengan satu tanggungjawab; 5. Tambah komen pada mata utama dan tulis dokumen antara muka untuk menjelaskan parameter, pulangan nilai dan pengecualian; 6. Meningkatkan kebolehlihatan, mengguna pakai suntikan pergantungan, mengurangkan kaedah keadaan global dan statik. Amalan ini meningkatkan kualiti kod, kecekapan kerjasama dan kemudahan pasca penyelenggaraan.

Ya, youpanrunsqlqueriesusingphp, danTheProcessinvolveschoosingadatabaseextension, connectingTothedatabase, executingqueriSafely, andclosingconnectionswhendone.todothis, firstChoosebetweBetbeSquLiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpiorpdob
