Jadual Kandungan
Fungsi operasi fail teras
Kes Praktikal: Skrip Pemprosesan Gred
Contoh Fail Gred.Txt Kandungan:
Hasil output yang dijangkakan.TXT dan Konsol:
Langkah pelaksanaan dan analisis kod
Langkah 1: Baca skor asal
Langkah 2: Sediakan fail output
Langkah 3: Pemprosesan Traversal dan Tulis Gred
Langkah 4: Tutup sumber fail
Kod sampel lengkap
Lari dan sahkan
Soalan dan langkah berjaga -jaga yang sering ditanya
Meringkaskan
Rumah pembangunan bahagian belakang tutorial php Pemprosesan Fail PHP: Tutorial Membaca, Pemprosesan dan Menulis

Pemprosesan Fail PHP: Tutorial Membaca, Pemprosesan dan Menulis

Aug 25, 2025 pm 05:12 PM

Pemprosesan Fail PHP: Tutorial Membaca, Pemprosesan dan Menulis

Butir tutorial ini bagaimana menggunakan PHP untuk operasi fail, termasuk data membaca dari fail, data pemprosesan (seperti pengiraan berangka dan penghakiman bersyarat), dan menulis hasil yang diproses ke fail baru. Melalui contoh pemprosesan gred tertentu, anda akan belajar cara menggunakan fungsi teras seperti fail (), fopen (), fWrite () dan fclose (), dan teknik utama utama seperti penukaran jenis data, gelung traversal dan pengurusan aliran fail apabila memproses kandungan fail.

Dalam pembangunan PHP, pemprosesan fail adalah tugas asas dan biasa digunakan. Sama ada membaca fail konfigurasi, memproses data yang dimuat naik oleh pengguna, atau menghasilkan laporan, ia tidak dapat dipisahkan dari operasi membaca dan menulis ke fail. Tutorial ini akan menerangkan secara terperinci konsep teras dan teknik praktikal pemprosesan fail dalam PHP melalui kes praktikal - membaca gred pelajar, meningkatkan skor dan menulis fail baru.

Fungsi operasi fail teras

Dalam PHP, fungsi utama berikut digunakan terutamanya untuk membaca dan menulis fail:

  • Fail (String $ FileName, int $ flags = 0, sumber $ context = null): Array | FALSE : Fungsi ini membaca keseluruhan fail ke dalam array. Setiap elemen array sepadan dengan garis dalam fail dan mengandungi garis pecah untuk baris itu.
  • FOPEN (String $ FileName, String $ Mode, bool $ use_include_path = false, sumber $ context = null): Sumber | FALSE : Fungsi ini digunakan untuk membuka fail atau URL. Parameter mod $ menentukan bagaimana fail dibuka, contohnya 'W' bermaksud mod tulis (dibuat jika fail tidak wujud, dipotong jika wujud).
  • FWRITE (Sumber $ Handle, String $ String, Int $ Long = 0): Int | False : Fungsi ini digunakan untuk menulis kandungan ke fail. $ pemegang adalah sumber fail yang dikembalikan oleh FOPEN (), dan $ String adalah rentetan yang akan ditulis.
  • FClose (Sumber $ Handle): BOOL : Fungsi ini digunakan untuk menutup penunjuk fail terbuka. Selepas melengkapkan operasi fail, pastikan anda menutup sumber fail untuk membebaskan sumber sistem dan memastikan integriti data.

Kes Praktikal: Skrip Pemprosesan Gred

Katakan kami mempunyai fail yang dipanggil gred.txt di mana setiap baris mengandungi gred pelajar (0-5). Misi kami ialah:

  1. Baca semua gred dalam gred.txt.
  2. Meningkatkan setiap skor dengan 1 mata, tetapi jika skor sudah 5 mata, ia tetap sama.
  3. Tulis gred yang lebih baik ke dalam fail hasil.txt, setiap gred mengambil satu baris.
  4. Pada masa yang sama, keputusan selepas penambahbaikan adalah output pada konsol.

Contoh Fail Gred.Txt Kandungan:

 0
4
1
3
2
4

Hasil output yang dijangkakan.TXT dan Konsol:

 1
5
2
4
3
5

Langkah pelaksanaan dan analisis kod

Kami akan membina langkah skrip PHP ini demi langkah.

Langkah 1: Baca skor asal

Gunakan fungsi fail () untuk membaca kandungan gred.txt ke dalam array pada satu masa.

  Php
$ gred = file ("gred.txt");
// $ gred kini array, sebagai contoh: ['0 \ n', '4 \ n', '1 \ n', '3 \ n', '2 \ n', '4 \ n']
?>

Nota: Setiap baris data yang dibaca oleh fungsi fail () mengandungi garis pecah pada akhir baris (seperti \ n). Sebelum melakukan pengiraan berangka, rentetan ini perlu ditukar kepada bilangan bulat.

Langkah 2: Sediakan fail output

Gunakan fungsi fopen () untuk membuka hasil.txt dalam mod write ('w'). Jika fail tidak wujud, ia akan dibuat; Jika fail sudah ada, kandungannya akan dikosongkan.

  Php
// ...
$ resultfileHandle = fopen ("results.txt", "w");

// Periksa sama ada fail itu dibuka dengan jayanya jika ($ resultsfilehandle === false) {
    mati ("Ralat: tidak dapat membuka hasil untuk menulis.");
}
?>

Langkah 3: Pemprosesan Traversal dan Tulis Gred

Sekarang kita perlu melangkah melalui pelbagai gred, memproses setiap gred, dan kemudian menulis hasil.txt dan output ke konsol.

  Php
// ...
foreach ($ gred sebagai $ index => $ gradeline) {
    // 1. Tukar setiap baris rentetan ke integer // (int) penukaran jenis secara automatik akan mengabaikan garis baru dan ruang pada akhir rentetan $ gred = (int) $ gradeline;

    // 2. Proses gred mengikut syarat $ raedgrade = $ gred; // jika ($ gred! = 5) {
        $ raisedGrade = $ gred 1;
    }

    // 3. Tulis hasil yang diproses ke dalam results.txt
    // pastikan setiap gred mengambil satu baris, jadi anda perlu menambah secara manual fwrite aksara baru ($ resultsfilehandle, $ raisedgrade. "\ N");

    // 4. Pada masa yang sama output ke konsol echo $ raisedgrade. "\ n";
}
?>

Langkah 4: Tutup sumber fail

Selepas semua operasi menulis selesai, gunakan fclose () untuk menutup pemegang fail hasil.txt. Ini adalah langkah yang sangat penting untuk memastikan semua data dibuang ke cakera dan sumber sistem yang bebas.

  Php
// ...
fclose ($ resultsfilehandle);
?>

Kod sampel lengkap

Mengintegrasikan langkah -langkah di atas untuk membentuk skrip PHP yang lengkap:

  Php

// 1. Baca semua gred dari gred.txt ke array $ gred = file ("gred.txt");

// Semak jika fail berjaya dibaca jika ($ gred === palsu) {
    mati ("Ralat: tidak dapat membaca gred.txt. Sila pastikan fail wujud dan telah membaca kebenaran.");
}

// 2. Buka fail hasil untuk menulis // 'w' mod akan membersihkan kandungan fail atau membuat fail baru $ resultsfilehandle = fopen ("results.txt", "w");

// Periksa sama ada fail itu dibuka dengan jayanya jika ($ resultsfilehandle === false) {
    mati ("Ralat: tidak dapat membuka hasil.TXT untuk menulis. Sila periksa kebenaran fail.");
}

echo "gred baru: \ n"; // Cetak tajuk // 3. ITERATE Melalui setiap gred, proses dan tulis fail baru, dan output ke Foreach Console ($ gred sebagai $ gradeline) {
    // Tukar rentetan (termasuk newline) ke integer $ gred = (int) $ gradeline;

    // Meningkatkan gred mengikut logik perniagaan $ raedgrade = $ gred;
    jika ($ gred! = 5) {
        $ raisedGrade = $ gred 1;
    }

    // Tulis gred yang lebih baik untuk menghasilkan.txt dan tambahkan fwrite aksara baru ($ resultsfilehandle, $ raisedgrade. "\ N");

    // Pada masa yang sama, keputusan selepas peningkatan dalam output konsol echo $ raisedgrade. "\ n";
}

// 4. Tutup hasil file flose ($ resultsfilehandle) ;txt);

echo "pemprosesan lengkap.

?>

Lari dan sahkan

  1. Buat fail gred.txt dan isi kandungan contoh di atas.
  2. Simpan kod php di atas sebagai process_grades.php.
  3. Jalankan php process_grades.php dalam baris arahan.
  4. Semak output konsol dan lihat sama ada kandungan fail hasilnya seperti yang diharapkan.

Soalan dan langkah berjaga -jaga yang sering ditanya

  • Laluan Fail: Pastikan fail gred.txt dan results.txt terletak di laluan yang betul yang boleh diakses oleh skrip PHP. Jika fail tidak dalam direktori yang sama, laluan lengkap atau relatif diperlukan.
  • Kebenaran Fail: Skrip PHP memerlukan kebenaran untuk membaca gred.txt dan kebenaran untuk menulis hasil.txt. Jika anda menghadapi isu kebenaran, periksa tetapan kebenaran untuk fail atau direktori.
  • Penukaran Jenis Data: Data yang dibaca dari fail biasanya rentetan. Sebelum melakukan operasi berangka, pastikan anda melakukan penukaran jenis yang sesuai (seperti (int) atau intVal ()). Baris yang dibaca oleh fungsi fail () mengandungi rehat garis, dan penukaran (int) bijak mengabaikan aksara bukan angka ini.
  • Pengendalian ralat: Dalam aplikasi sebenar, nilai pulangan fail () dan fopen () harus diperiksa untuk mengendalikan kesilapan seperti fail tidak wujud atau tidak dapat dibuka, dan meningkatkan keteguhan skrip.
  • Pemotongan fail: Membuka fail dalam mod 'W' akan membersihkan kandungannya yang sedia ada. Jika anda perlu menambah bukannya ganti, gunakan mod 'A' (tambahan).
  • Pengurusan Sumber: Sentiasa ingat untuk menggunakan fclose () untuk menutup pemegang fail selepas operasi fail selesai untuk mengelakkan kebocoran sumber.

Meringkaskan

Melalui tutorial ini, anda telah menguasai proses asas membaca, memproses dan menulis fail dalam PHP. Memahami penggunaan fungsi teras seperti fail (), fopen (), fWrite (), dan fclose (), serta kepentingan penukaran jenis data dan pengendalian ralat, akan membantu anda mengendalikan tugas pengaturcaraan yang berkaitan dengan pelbagai fail dengan cekap. Dalam pembangunan sebenar, fleksibel menggunakan teknik ini mengikut keperluan khusus boleh membina skrip pemprosesan fail yang kuat dan stabil.

Atas ialah kandungan terperinci Pemprosesan Fail PHP: Tutorial Membaca, Pemprosesan dan Menulis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bagaimana cara memeriksa sama ada alamat e -mel sah dalam php? Bagaimana cara memeriksa sama ada alamat e -mel sah dalam php? Sep 21, 2025 am 04:07 AM

UseFilter_var () TOVALIDATEMailSyntaxandCheckDnsrr () TOVERIFYDOnMAINMXRECORDS.example: $ e -mel = "user@example.com"; if (filter_var ($ e -mel, filter_email) && checkDnsrr (expode '

Bagaimana membuat salinan atau klon objek yang mendalam dalam php? Bagaimana membuat salinan atau klon objek yang mendalam dalam php? Sep 21, 2025 am 12:30 AM

UseUnserialize (Serialize ($ obj)) fordeepcopyingWhenallDataisserizable; jika tidak, pelaksanaan__clone () tomanuallyduplicatenestedObjectsandavoidsharedReferences.

Bagaimana untuk menggabungkan dua tatasusunan dalam PHP? Bagaimana untuk menggabungkan dua tatasusunan dalam PHP? Sep 21, 2025 am 12:26 AM

UseArray_Merge () toCombineArrays, OverwritingDuplicateStringKeySandreIndexingNumericKeys; forsimplerconcatenation, terutamaInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

MySQL Agregasi Bersyarat: Gunakan Penyataan Kes untuk Melaksanakan Sumsum dan Mengira Kondisi Simpanan MySQL Agregasi Bersyarat: Gunakan Penyataan Kes untuk Melaksanakan Sumsum dan Mengira Kondisi Simpanan Sep 16, 2025 pm 02:39 PM

Artikel ini membincangkan secara mendalam bagaimana menggunakan pernyataan kes untuk melakukan pengagregatan bersyarat di MySQL untuk mencapai penjumlahan bersyarat dan mengira bidang tertentu. Melalui kes sistem langganan praktikal, ia menunjukkan bagaimana secara dinamik mengira jumlah tempoh dan bilangan peristiwa berdasarkan status rekod (seperti "akhir" dan "membatalkan"), dengan itu mengatasi batasan fungsi jumlah tradisional yang tidak dapat memenuhi keperluan pengagregatan bersyarat kompleks. Tutorial menganalisis penerapan pernyataan kes dalam jumlah fungsi secara terperinci dan menekankan pentingnya bersatu ketika berurusan dengan nilai nol yang mungkin dari gabungan kiri.

Bagaimana cara menggunakan ruang nama dalam projek PHP? Bagaimana cara menggunakan ruang nama dalam projek PHP? Sep 21, 2025 am 01:28 AM

Namespacesinphporganizecodeandpreventnamingnamingconflictsbygroupinglasses, antara muka, fungsi, dan constantsunderaspecificname.2.defineAnamespaceusingthenamespaceywordetopofafile, diikuti olehbythenamespaceakenam

Apakah kaedah sihir dalam php dan memberikan contoh `__call ()` dan `__get ()`. Apakah kaedah sihir dalam php dan memberikan contoh `__call ()` dan `__get ()`. Sep 20, 2025 am 12:50 AM

The__call () methodistriggeredWhenaninaccessibleorundefinedmethodiscalledonanObject, membolehkanCustomHandlylyAccepteThemeThodnamnamnamnents, asshownwhencallingundefinedmethodslikesayhello ()

Bagaimana untuk mendapatkan sambungan fail dalam PHP? Bagaimana untuk mendapatkan sambungan fail dalam PHP? Sep 20, 2025 am 05:11 AM

UsePathinfo ($ FileName, pathinfo_extension) togetthefileextension; itreliLyHandlesmultipledotsandgecases, returnTheExtension (mis., "Pdf") Oranemptystringifnoneexists.

Bagaimana untuk mengemas kini rekod dalam pangkalan data dengan PHP? Bagaimana untuk mengemas kini rekod dalam pangkalan data dengan PHP? Sep 21, 2025 am 04:47 AM

Toupdateadatabaserecordinphp, firstConnectusingPdoormySqli, thenusePePreparedStatementStoExecuteAseCureSqlupDateQuery.example: $ pdo = newpdo ("mysql: host = localhost; dbName = your_database: $ userbase: $ userbase"

See all articles