Rumah > php教程 > php手册 > teks badan

Penjelasan terperinci tentang asas sistem_php fail PHP

WBOY
Lepaskan: 2016-05-16 09:00:22
asal
1665 orang telah melayarinya

Fungsi pemprosesan fail
1. Operasi fail
Buka fail:
Apabila fail yang ditentukan dibuka, objek yang sepadan akan dikembalikan jika fail yang dinyatakan tidak wujud dibuat secara automatik.
Fopen sumber(nama fail rentetan, mod rentetan [,int use_include_path][,konteks sumber]);
Nama fail boleh menjadi nama fail yang mengandungi laluan fail, atau ia boleh menjadi URL yang diberikan oleh protokol tertentu (kepada buka fail jauh ). Untuk mengelakkan masalah yang disebabkan oleh penukaran sistem, '/' digunakan sebagai pemisah laluan
Mod: Tetapkan cara untuk membuka fail, masing-masing:
r: Baca sahaja. mod, penunjuk fail terletak di kepala fail
r+: Mod baca sahaja - mod baca/tulis, penunjuk fail terletak di kepala fail w: Mod tulis sahaja, penunjuk fail terletak di kepala fail Jika fail itu wujud, padamkannya Tulis semula kandungan jika tidak, cipta fail itu sendiri
    w+: Mod tulis sahaja. -baca dan tulis fail, penunjuk fail baca/tulis menghala ke kepala fail. Jika fail itu wujud, padamkan kandungan dan tulis semula jika tidak, cipta fail itu sendiri
Mod tulis membuka fail wujud, kembalikan palsu dan jana mesej ralat peringkat E_WARNING
a: Tambah, penunjuk fail menghala ke penghujung fail Jika fail itu wujud, tambahkan terus ke hujung fail itu sendiri .
a+: Tambah, penunjuk fail menghala ke penghujung fail, tambahkan atau baca terus di hujung fail, jika tidak, buat sendiri fail itu. Digunakan untuk memaut dengan mod lain. ( Pilihan di bawah tingkap)
t: Digunakan untuk menggabungkan dengan mod lain (Pilihan di bawah tingkap)
Sila gunakan fungsi fopen() dengan berhati-hati, kerana fail mungkin dipadamkan secara tidak sengaja. Pada masa yang sama, berbeza Sistem pengendalian mempunyai tabiat penamat baris yang berbeza (UNIX:n Windows:rn Macinitosh:r Jika penamat talian digunakan dengan tidak betul, sekumpulan aksara bercelaru mungkin dikeluarkan apabila fail dibuka boleh lulus "'t'", "'b'" untuk mengelakkan

Baca fail:

String fgetc(resource handle);//Kembalikan aksara daripada fail yang ditunjuk oleh. handle. Jika EOF ditemui, maka Return false; String fgets(int handle[,int length]);//Dapatkan baris aksara dari lokasi yang ditunjukkan oleh penuding fail, dan kembalikan rentetan sehingga panjang-1 bait. Penunjuk fail mestilah sah, Dan menunjuk ke fail yang berjaya dibuka oleh fopen() atau panjang fsockopen() Ia berakhir apabila baris baharu, EOF atau panjang yang ditentukan ditemui . Mengabaikan panjang akan dibaca hingga hujung baris
 rentetan fgetss(resource handle[,int length][,string allowable_tags]);//Baca satu baris dan tapis keluar tag html dan php (int handle,int length);//Baca daripada fail Data sebarang panjang. , juga boleh digunakan untuk membaca fail binari. pemegang ialah sumber yang menunjuk ke fail, panjang membaca bait panjang atau menghentikan pelaksanaan apabila EOF ditemui.
Contoh:




Salin kod

Kod adalah seperti berikut: $filename="./files.text";
$fp=fopen($finename,"rb"); 🎜>
Fungsi
readfile(), file() dan file_get_contents()
readfile(), file() dan file_get_contents(). //Baca fail dan tulis pada penimbal Jika berjaya, kembalikan bilangan bait yang dibaca, jika tidak, kembalikan palsu. nama fail nama fail. Parameter use_include_path mengawal sama ada untuk menyokong pencarian fail dalam include_path, dan benar bermakna ia disokong. Tidak perlu membuka/menutup fail menggunakan fungsi readfile.
 fail tatasusunan(nama fail rentetan [,bool use_include_path[,konteks sumber]]);//Baca kandungan keseluruhan fail ke dalam tatasusunan. Jika berjaya, tatasusunan dikembalikan. Setiap elemen dalam tatasusunan ialah baris yang sepadan dalam fail, termasuk baris baharu jika tidak, false dikembalikan
string file_get_contents(string nama fail[,bool use_include_path[,resource context[,int offset; [,int maxlen]]]]);//context ialah kandungan baharu dalam 5.0 dan boleh diabaikan dengan NULL. mengimbangi, maxlen ialah kandungan 5.1. offset digunakan untuk menandakan kedudukan permulaan fail, dan maxlen menetapkan panjang fail dibaca. Kaedah ini sesuai untuk membaca fail binari. Merupakan kaedah pilihan untuk membaca kandungan fail ke dalam rentetan. Jika disokong oleh sistem pengendalian, teknologi pemetaan memori juga digunakan untuk meningkatkan prestasi. Jika anda membuka URL dengan aksara khas (seperti ruang), gunakan urlencode() untuk mengekod URL.

Nota: readfile(), file() dan file_get_contents() tidak perlu menggunakan fungsi fopen() dan fclose() apabila membaca kandungan keseluruhan folder, tetapi apabila membaca satu aksara, satu baris aksara dan sebarang panjang aksara.


2. Tulis ke fail:
 int fwrite(resource handle,string[,int length]);//Lakukan operasi menulis fail, ia juga mempunyai alias fputs () Kaedah ini digunakan untuk menulis kandungan rentetan pada pemegang penuding fail. Jika panjang ditetapkan, operasi berhenti selepas bait panjang telah ditulis atau rentetan telah ditulis. Mengembalikan benar jika penulisan berjaya, jika tidak mengembalikan palsu.
Nota: Jika parameter panjang diberikan, pilihan magic_quotes_runtime dalam fail php.ini akan diabaikan dan garis miring dalam rentetan tidak akan dialih keluar. Untuk membezakan antara fail binari dan sistem fail teks, 'b' mesti ditambah pada parameter mod fungsi fopen() apabila membuka fail.
  int file_put_contents(string nama fail,data rentetan[.int flags[,resource context]]);//Tulis rentetan ke dalam fail dan kembalikan bilangan bait jika berjaya, jika tidak, kembalikan palsu. bendera: melaksanakan penguncian fail (pilihan termasuk file_use_include_path, file_append: tambah, lock_ex: kunci eksklusif). konteks sumber konteks.
Nota: Walaupun fwrite() mempunyai fungsi menulis fail, ia mesti disokong oleh fungsi fopen() dan fclose(). file_put_contents() menyepadukan fungsi fopen(), fwrite(), dan fclose(), dan boleh melengkapkan penulisan fail secara bebas.

3. Tutup fail
Setelah fail dibuka, ia sepatutnya mempunyai fungsi tutup Selepas operasi pada fail selesai, fail harus ditutup, jika tidak, ia boleh menyebabkan ralat .
bool fclose(resouce handle);//Tutup fail yang ditunjuk oleh pemegang parameter, kembalikan benar jika berjaya, jika tidak kembalikan palsu.


Kunci fail Apabila menulis data pada fail teks, anda perlu mengunci fail terlebih dahulu untuk menghalang pengguna lain mengubah suai kandungan fail pada masa yang sama. Penguncian fail dilaksanakan dalam PHP melalui fungsi flock().
 bool flock(int handle,int operation);//Operasi parameter mengawal kebenaran mengunci. Termasuk: lock_sh: dapatkan kunci kongsi (pembaca). lock_ex: Dapatkan kunci eksklusif (tulis). lock_un: Lepaskan kunci. lock_nb: Elakkan fungsi flock() daripada menyekat semasa mengunci.


Fungsi pemprosesan direktori
  Direktori ialah sejenis fail khas. Oleh kerana ia adalah fail, jika anda ingin mengendalikannya, anda mesti membukanya dahulu, kemudian anda boleh menyemak imbasnya, dan akhirnya ingat untuk menutupnya.


1 Buka direktori
Buka fail direktori yang ditentukan Jika berjaya, kembalikan pemegang direktori. Jika tidak pulangkan palsu. Tidak seperti membuka fail, jika direktori tidak wujud, ia tidak akan membuat direktori secara automatik, tetapi akan membuang mesej ralat. Dengan menambahkan simbol "@" sebelum fungsi opendir(), anda boleh menyekat output mesej ralat.
Resource opendir(string path[,resource context]);//path menentukan fail direktori yang akan dibuka. Jika laluan yang ditentukan bukan direktori yang sah, atau ralat sistem fail tidak boleh dibuka kerana isu kebenaran, maka fungsi ini akan mengembalikan palsu dan menjana mesej ralat peringkat E_WARNING.

2. Semak imbas direktori

Gunakan pemegang yang dikembalikan oleh fungsi opendir dan fungsi scandir untuk melaksanakan operasi penyemakan imbas.
 array scandir(string directory[,int sorting_ordering[,resource context]]);//Digunakan untuk menyemak imbas direktori dan fail di bawah laluan yang ditentukan. Mengembalikan tatasusunan yang mengandungi nama fail jika berjaya, jika tidak mengembalikan palsu. direktori menentukan direktori yang hendak dilayari Jika ia bukan direktori, palsu akan dikembalikan dan mesej ralat peringkat E_WARNING akan dihasilkan. sorting_order menetapkan susunan pengisihan, lalainya ialah tertib menaik mengikut abjad. Jika parameter ini disediakan, ia akan diisih mengikut tertib menurun.
Catatan: Fungsi is_dir() menentukan sama ada nama fail yang ditentukan ialah direktori.Renvoie vrai si le nom de fichier existe et est un répertoire, faux sinon. S'il s'agit d'un répertoire relatif, son chemin relatif est comparé au répertoire de travail actuel.

3. Fermez le répertoire.

void closeir(resource handle);//handle, le handle du répertoire de travail à fermer.

Remarque : Comme nous l'avons appris précédemment, si le répertoire ouvert n'existe pas, le système ne créera pas le répertoire pour nous. Nous pouvons ensuite créer nous-mêmes le répertoire souhaité. Les fonctions suivantes peuvent être appliquées :
Fonction mkdir() : Crée un nouveau répertoire et renvoie vrai en cas de succès, sinon faux.
 Fonction RMdir() : supprime un répertoire. Le répertoire doit être vide (aucun fichier ni sous-répertoire dans le répertoire) et doit disposer des autorisations d'exploitation.
Fonction unlink() : supprime les fichiers, renvoie vrai en cas de succès, faux en cas d'échec.

Principe du téléchargement et du téléchargement de fichiers
  
Contenu de l'étape :
Étape 1 : Contrôlez le fichier téléchargé et configurez-le via le fichier php.ini.
Étape 2 : Jugez le fichier téléchargé. Téléchargez la taille, le format, etc. du fichier.
Étape 3 : effectuez la méthode d'opération de téléchargement de fichiers.

1. Contrôler les fichiers téléchargés :

PHP contrôle les fichiers téléchargés via php.ini, notamment : la prise en charge du téléchargement, le répertoire temporaire des fichiers téléchargés et les fichiers téléchargés. La taille, le temps d'exécution de l'instruction et l'espace mémoire alloué par l'instruction.
Localisez l'option de téléchargement de fichiers dans le fichier php.ini et complétez les paramètres pour les options ci-dessus. La signification des options est la suivante :
File_uploads : S'il est activé, cela signifie que le serveur prend en charge le téléchargement de fichiers. S'il est désactivé, il ne le prend pas en charge. Généralement, elle est prise en charge par défaut et cette option n'a pas besoin d'être modifiée.
Upload_tem_dir : Répertoire temporaire pour les fichiers téléchargés. Avant que le téléchargement du fichier réussisse, le fichier est d'abord enregistré dans le répertoire temporaire du serveur. La plupart utilisent le répertoire système par défaut, mais vous pouvez également le définir vous-même.
Upload_max_filesize : La taille maximale des fichiers autorisés à être téléchargés par le serveur, en Mo. La valeur par défaut du système est de 2 Mo. Si elle dépasse, la valeur doit être modifiée.
max_execution_time : La durée maximale pendant laquelle une commande en php peut être exécutée, en secondes. Cette commande doit être modifiée lors du téléchargement de fichiers très volumineux, sinon le téléchargement des fichiers dans les délais se situe dans la plage autorisée par le serveur, mais s'il dépasse la durée maximale pendant laquelle la commande peut être exécutée, le téléchargement ne sera toujours pas possible.
Memory_limit : L'espace mémoire alloué par une commande en php, en Mo. Sa taille affecte également le téléchargement de fichiers très volumineux.

Remarques : Lors du contrôle de l'application de téléchargement de fichiers dans le client, les attributs enctype et method dans le formulaire, ainsi que le champ caché MAX_FILE_SIZE
 enctype="multipart/form-data": Spécifiez la méthode d'encodage des données du formulaire.
Method="post" : Spécifiez la méthode de transmission des données.
  : Contrôlez la taille du fichier téléchargé via le champ caché, en octets. Cette valeur ne peut pas dépasser la valeur définie par l'option upload_max_filesize dans le fichier de configuration php.ini. Il ne peut pas contrôler entièrement la taille des fichiers téléchargés, il ne peut qu'éviter certains problèmes inutiles.

2. Déterminer les fichiers téléchargés

La variable globale $_FILES est utilisée pour juger les fichiers téléchargés. $_FILES est un tableau qui contient des informations sur tous les fichiers téléchargés. La signification de chaque élément du tableau est la suivante :
 $_FILES[filename][name] : stocke le nom du fichier téléchargé, tel que text.txt, title.jpg, etc.
 $_FILES[filename][size] : La taille du fichier stocké, en octets.
 $_FILES[filename][tem_name] : Le nom de fichier utilisé pour stocker le fichier dans le répertoire temporaire, car lorsque le fichier est téléchargé, il doit d'abord être stocké dans le répertoire temporaire en tant que fichier temporaire.
 $_FILES[filename][type] : type MIME qui stocke les fichiers téléchargés. MIME spécifie les types de différents formats de fichiers. Chaque type MIME est composé d'un type principal et d'un sous-type séparés par "/". Par exemple : le type principal de "image/gif" est image et le sous-type est un fichier au format GIF. "text/html" représente un fichier HTML de texte.
 $_FILES[filename][error] : Stocke le code d'erreur du téléchargement du fichier : Cet élément est un nouveau contenu dans la version PHP4.2.0. Il existe 5 types de valeurs de retour :
0 : N'indique aucune erreur. Fichier téléchargé avec succès.
1 : Indique que la taille du fichier téléchargé dépasse la valeur limite de l'option upload_max_filesize de la directive du fichier de configuration.
2 : Indique que la taille du fichier téléchargé dépasse la valeur spécifiée par l'option max_file_size dans le formulaire HTML.
3 : Indique que seule une partie du fichier a été téléchargée.
4 : Indique qu'aucun fichier n'a été téléchargé.
Exemple :
Copier le code Le code est le suivant :

/*Tentukan sama ada hendak memuat naik gambar*/
jika(!kosong($_FILES['up_gambar'][nama])){
/*Tukar gambar Maklumat diberikan kepada pembolehubah*/
$type=strtolower(strstr($_FILES['up_picture'][name],".")); $type ! = '.gif') echo "Format fail yang anda muat naik adalah salah"; ][size] >0){
gema "Muat naik nama fail:".$_FILES['up_picture'][name]."
";
gema "Muat naik jenis fail:" .$taip. "
";
gema "Muat naik saiz fail:".$_FILES['up_picture'][size]."
"; "Saiz gambar tidak Memenuhi keperluan. ";
}
?>


3.


Gunakan fungsi move_uploaded_file() dalam php untuk melaksanakan muat naik fail. Tetapi sebelum pelaksanaan, untuk mengelakkan kemungkinan serangan daripada mengurus fail secara haram yang tidak boleh berinteraksi melalui skrip, anda boleh menggunakan fungsi is_uploaded_file() dahulu untuk menentukan sama ada fail yang ditentukan telah dimuat naik melalui HTTP POST dan jika ya, kembalikan benar. Fungsi ini memastikan bahawa pengguna berniat jahat tidak boleh menipu skrip untuk mengakses fail yang tidak boleh diakses.
bool is_uploaded_file(string name);//Digunakan untuk menentukan sama ada fail yang ditentukan telah dimuat naik melalui HTTP POST. nama fail mestilah pembolehubah yang serupa dengan $_FILES['filename']['temp_name']. Nama fail yang dimuat naik daripada klien tidak boleh digunakan.

 move_upload_file(string name file, string destination);//Fungsi ini digunakan untuk memuat naik fail ke lokasi yang ditentukan dalam pelayan. Mengembalikan benar jika berjaya, palsu sebaliknya. nama fail menentukan nama fail sementara bagi fail yang dimuat naik, iaitu $_FILES['tmp_name'] dan destinasi parameter menentukan laluan dan nama baharu fail yang disimpan selepas dimuat naik. Jika parameter bukan fail yang dimuat naik secara sah, tiada operasi akan berlaku dan fungsi akan mengembalikan palsu. Jika ia adalah operasi muat naik yang sah tetapi tidak boleh dialihkan atas sebab tertentu, tiada operasi akan berlaku dan amaran akan dikeluarkan semasa mengembalikan palsu.


Salin kod


Kod adalah seperti berikut:kes 1:
gema "Fail yang dimuat naik melebihi nilai yang dinyatakan dalam fail konfigurasi"
pecah; >kes 2:
echo "Fail yang dimuat naik melebihi nilai borang yang ditentukan";
break; 🎜>kes 4:
gema "Tiada fail dimuat naik ";
pecah;
}
}lain{
jika( ! is_dir('./upfile/') ) mkdir('. /upfile/');
$path=' ./upfile/'.time().$_FILES['up_picture' ][ 'name' ]; [ 'tmp_name' ] )){
if( !move_uploaded_file( $_FILES['up_picture' ][ 'tmp_name' ] ,$path )){
gema "Muat naik gagal!"
}else{;
gema "Fail".masa().$ _FILES['up_gambar' ][ 'nama' ] ."Muat naik berjaya, saiznya ialah: ".$_FILES['up_gambar' ][ 'saiz' ] ; }
}lain{
gema "Muat Naik Fail ".$_FILES['up_picture' ][ 'nama' ]."Haram";
}
}
}
?> ;




4. Muat turun fail


Di sini kami memperkenalkan muat turun fail melalui http, terutamanya menggunakan fungsi header(). Fungsi header() ialah fungsi HTTP Fungsinya adalah untuk menghantar pengepala dokumen HTML ke penyemak imbas melalui HTTP dan memberitahu pelayar cara memproses halaman ini.
void header(string rentetan[,bool replace[,int http_respone_code]]);//Rentetan parameter menentukan pengepala untuk dihantar. Parameter ganti mengawal sama ada pengepala serupa diganti atau ditambah jika berbilang pengepala dihantar serentak. Jika palsu, berbilang pengepala daripada jenis yang sama terpaksa dihantar. Parameter http_respone_code memaksa kod respons HTTP ditetapkan kepada nilai yang ditentukan:
Langkah muat turun adalah seperti berikut:
a): Tentukan jenis MIME fail melalui "Jenis Kandungan".
b): Terangkan fail melalui "Content-Disposition", nilai "attachment;filename="test.jpg"" menunjukkan bahawa ia adalah Fujian, dan juga menyatakan nama fail yang dimuat turun.
c): Tetapkan saiz fail muat turun melalui "Panjang Kandungan".
d): Baca kandungan fail melalui fungsi readfile().
Contohnya:



Salin kod

Kod adalah seperti berikut:


header(' Jenis Kandungan: imej/jpg');
header(' Content-Disposition:attachment;filename="test.jpg" ');
header('Content-Length:'.filesize('test.jpg ') );
readfile('test.jpg');

5. Accéder aux fichiers distants

Étape 1 : Configurez l'option du fichier php.ini allow_url_fopen sur on. Le paramètre est activé par défaut, permettant l'ouverture des fichiers distants spécifiés par http et ftp. Si Allow_url_fopen est désactivé, les fichiers distants ne peuvent pas être ouverts.
Étape 2 : Utilisez la fonction fopen() pour lire le contenu du fichier. Créez les ressources souhaitées en fonction du contenu et enregistrez-les localement.
   
ps : Pour plus de méthodes d'extension des opérations sur les fichiers et les opérations sur les répertoires dans le fichier de configuration php.ini, veuillez vous référer au guide PHP officiel.
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!