Belajar ketika menggunakan fopen, fclose, feof, fgets, fgetss, dan fscanf
Praktik yang baik
Jangan berasumsi bahwa segala sesuatu dalam program Anda akan bekerja seperti yang direncanakan. Sebagai contoh, bagaimana jika file yang Anda cari telah pindah? Bagaimana jika izin telah diubah dan Anda tidak dapat membaca isi? Anda dapat memeriksa hal-hal ini terlebih dahulu dengan menggunakan file_exists dan is_readable
Listing 7. Gunakan file_exists dan is_readable
$filename = "myfile";
if (file_exists($filename) && is_readable ($filename)) {
$fh = fopen($filename, "r");
# Processing
fclose($fh);
}
Dalam prakteknya, bagaimanapun, kode tersebut mungkin berlebihan. Pengolahan nilai kembali dari fopen lebih sederhana dan lebih akurat.
if ($ fh = fopen ($ filename, "r")) {
# Pengolahan
fclose ($ fh);
}
Karena fopen kembali Palsu pada kegagalan, ini akan memastikan bahwa pemrosesan file terjadi hanya jika file terbuka berhasil. Tentu saja, jika file tersebut tidak ada atau nonreadable, Anda dapat mengharapkan nilai kembali negatif. Hal ini membuat single ini memeriksa mencakup semuanya untuk semua masalah Anda mungkin mengalami. Atau, Anda mungkin memiliki exit program atau menampilkan pesan kesalahan jika terbuka gagal.
Seperti fopen file_get_contents file dan readfile semua kembali False pada kegagalan untuk membuka atau memproses file. The fgetsfgetss fread fscanf dan fclose fungsi juga kembali False pada kesalahan. Tentu saja, dengan pengecualian dari fclose Anda mungkin sudah memproses nilai-nilai pengembalian tersebut. Dengan fclose ada sedikit yang harus dilakukan jika menangani file tidak menutup dengan benar, jadi memeriksa nilai kembali untuk fclose umumnya tidak perlu.
Memilih racun Anda
PHP tidak memiliki kekurangan cara yang efektif untuk membaca dan parsing file. Fungsi klasik seperti fread mungkin melayani Anda terbaik banyak waktu atau Anda mungkin menemukan diri Anda tertarik lebih ke kesederhanaan readfile ketika itu tepat untuk tugas tersebut. Itu benar-benar tergantung pada apa yang Anda capai.
Jika Anda sedang memproses data dalam jumlah besar, fscanf mungkin akan membuktikan berharga dan lebih efisien daripada, katakanlah, menggunakan file diikuti oleh split dan sprintf perintah. Sebaliknya, jika Anda hanya menggemakan sejumlah besar teks dengan sedikit modifikasi, file file_get_contents atau readfile mungkin lebih masuk akal. Ini kemungkinan akan terjadi jika Anda menggunakan PHP untuk caching atau bahkan membuat server proxy darurat.
PHP memberikan banyak alat untuk bekerja dengan file. Menjadi lebih akrab dengan masing-masing dan belajar mana yang terbaik sesuai dengan proyek yang sedang Anda kerjakan. Anda punya banyak pilihan, sehingga membuat baik penggunaan mereka dan bersenang-senang memproses file Anda dengan PHP.
ConversionConversion EmoticonEmoticon