Cara menggunakan php file_get_contents headers

Langkah pertama Anda ketika mencoba untuk membaca data dari sebuah file atau menulis sesuatu untuk itu harus memeriksa jika file yang sudah ada. Mencoba untuk membaca data dari sebuah file yang tidak ada akan mengakibatkan peringatan dari PHP dan mungkin akan crash kode Anda.

Cara termudah untuk memeriksa apakah file ada adalah dengan menggunakan fungsi

file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
4 PHP. Itu akan kembali
file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
5 jika file atau direktori dengan
file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
6 tertentu ada dan
file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
7 jika tidak. Ini mungkin jelas, tapi saya ingin menunjukkan bahwa
file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
6 tidak harus hanya menjadi nama file. Hal ini juga dapat path absolut atau relatif. Sebagai contoh, kita bisa menggunakan prime_numbers.txt atau science/project/periodic_table.txt.

Hal ini juga penting untuk diingat bahwa fungsi ini juga akan return

file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
7 untuk file yang tidak dapat diakses karena pembatasan safe mode.

Fungsi lain yang dapat Anda gunakan untuk memeriksa keberadaan file adalah

<?php
00. Berbeda dengan
<?php
01, fungsi ini hanya akan mengembalikan
file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
5 jika jalan tertentu poin untuk file dan direktori yang tidak.

Memastikan bahwa File yang benar-benar ada

Jika kode Anda menulis melakukan banyak operasi file pada file tertentu, Anda mungkin mendapatkan hasil yang salah menggunakan fungsi di atas. Hal ini karena hasil pelaksanaan

<?php
01 dan
<?php
00 cache untuk meningkatkan kinerja. PHP juga cache nilai-nilai yang dikembalikan oleh fungsi filesystem lainnya seperti
<?php
05,
<?php
06, dll.

Anda dapat menghubungi

<?php
07 untuk memastikan bahwa setiap informasi yang Anda mengakses file up-to-date.

Hal ini umumnya hanya masalah jika file yang sama sedang diakses beberapa kali dalam satu skrip untuk mengetahui status. Juga, data yang ditembolok dihapus jika Anda menghapus file dalam script yang menggunakan fungsi

<?php
08. Ini pada dasarnya berarti bahwa Anda mungkin tidak akan menghadapi masalah terkait caching, tapi masih baik untuk tahu bahwa Anda bisa membersihkan cache dalam hal informasi pergi basi atau jika Anda mendapatkan hasil yang tak terduga ketika mencoba untuk mengakses informasi tentang file.

Membaca Data dari File dalam PHP

Salah satu cara termudah untuk membaca data dari file dalam PHP adalah dengan bantuan dari fungsi

<?php
09. Itu hanya akan membaca seluruh file dan memberikannya kepada Anda dalam bentuk string. Semua parameter kecuali yang pertama opsional.

Parameter kedua menerima sebuah nilai boolean untuk menentukan jika itu harus mencari file dalam lokasi yang ditentukan oleh sertakan path, yang dapat diatur menggunakan fungsi

<?php
10.

Anda dapat menggunakan parameter ketiga untuk menentukan sekelompok pilihan untuk memperbaiki bagaimana file yang dapat diakses. Anda dapat menggunakannya untuk menentukan nilai header seperti

<?php
11 dan
<?php
12 serta metode HTTP.

<?php
13 parameter menentukan titik mana membaca dimulai pada file asli. Memberikan nilai negatif akan mulai menghitung dari ujung. Dukungan untuk offset negatif hanya ditambahkan pada PHP 7.1.0. It's worth dicatat bahwa mengimbangi hanya bekerja dengan file lokal dan tidak didukung untuk remote file.

Fungsi

<?php
14 membaca seluruh file sekaligus secara default. Anda dapat mengubah perilaku ini dengan memberikan nilai untuk
<?php
15 parameter. Panjang karakter untuk dibaca dihitung dari nilai offset.

Fungsi ini akan return

file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
7 jika gagal untuk membaca data dari file yang Anda tentukan. Namun, itu juga dapat kembali nilai-nilai yang mengevaluasi ke
file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
7, jadi pastikan bahwa Anda memeriksa jika itu benar-benar kembali menggunakan palsu
<?php
18 operator.

Anda dapat menggunakan fungsi ini untuk membuka berkas remote, tapi itu akan mungkin hanya jika nilai opsi

<?php
19 dalam php.ini
file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
5 atau
<?php
21.

Salah satu cara termudah untuk menulis data ke file di PHP adalah dengan bantuan dari fungsi

<?php
22.

file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
6 parameter menentukan berkas di mana data akan ditulis. Parameter kedua adalah data yang Anda ingin menulis ke file. Sebagian besar waktu itu akan menjadi string, tetapi juga bisa array atau sumber daya stream.

Ingat bahwa PHP akan secara otomatis membuat file dengan nama yang diberikan untuk Anda jika sudah tidak ada. Namun, itu tidak akan membuat direktori apapun untuk Anda. Ini berarti bahwa Anda dapat menyimpan file dengan nama pada the Origin of Species [Charles Darwin] .txt tanpa kesalahan. Namun, pengaturan

file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
6 untuk biologi/evolusi/On the Origin of Species [Charles Darwin] .txt, jika biologi evolusi/tidak ada, akan mengakibatkan kesalahan.

<?php
25 parameter menentukan bagaimana konten akan ditulis ke file. Hal ini dapat memiliki salah satu atau semua tiga nilai berikut:

  • <?php
    
    26—ini memberitahu PHP untuk mencari nama file tertentu dalam direktori termasuk.
  • <?php
    
    27—ini akan memberitahu PHP untuk menambahkan data Anda dikirimkan ke fungsi untuk data yang ada dalam file. Hal ini dapat berguna jika Anda menyimpan data dalam file seperti log atau sebuah diary pribadi. Merekam data baru seperti suhu atau peristiwa yang terjadi pada Anda hari ini tidak akan menimpa sesuatu Anda merekam kemarin.
  • <?php
    
    28—ini akan memberitahu PHP untuk mendapat kunci pada file sebelum mulai menulis konten ke dalamnya. Hal ini dapat mencegah hal-hal tak terduga terjadi ketika dua skrip yang berbeda membaca atau menulis data ke file yang sama. Dengan nilai yang tertentu ini, Anda akan mendapatkan kunci eksklusif pada file. Anda dapat membaca lebih lanjut tentang ini kunci dalam dokumentasi PHP fungsi
    <?php
    
    29.

Fungsi ini mengembalikan jumlah byte yang ditulis untuk file pada keberhasilan dan

file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
7 pada kegagalan. Namun, Anda masih harus menggunakan operator ketat kesetaraan untuk memeriksa apakah itu berhasil dalam menulis konten ke file. Itu karena kode yang menulis 0 bytes ke file akan masih mengevaluasi ke false.

Membaca dan menulis Data ke file

Anda dapat kepala ke situs Project Gutenberg dan mencoba untuk men-download file menggunakan fungsi

<?php
14. Setelah Anda memiliki data dalam string, Anda hanya dapat menyimpannya dalam sebuah file lokal yang menggunakan fungsi
<?php
32. Contoh berikut akan membuat ini jelas:

1
<?php
2
3
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
4
5
$book_content = file_get_contents($filename);
6
file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
<?php
0
<?php
1
<?php
2

Anda bisa menyimpan halaman web atau konten dari situs-situs seperti Wikipedia Indonesia dengan cara yang sama. Jika Anda perlu untuk memahami HTML atau parse konten HTML yang Anda hanya disimpan secara lokal, Anda dapat mengikuti tutorial seperti Parsing HTML dengan PHP menggunakan DiDOM, yang akan membantu Anda secara otomatis mendapatkan link, file gambar, atau lain informasi tersebut dari halaman web.

Mari kita kembali ke file lokal sekarang. Pertimbangkan situasi di mana Anda memiliki sekelompok file teks dan Anda ingin menganalisis konten mereka melihat hal-hal seperti kata-kata yang paling umum di dalamnya. Ini bisa dicapai dengan mudah menggunakan sekelompok fungsi built-in PHP.

1
<?php
2
3
<?php
7
4
$book_content = file_get_contents($filename);
5
6
2
2
<?php
0
<?php
1
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
0
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
1
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
2
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
3
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
4
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
5
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
6
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
7
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
8
$filename = 'http://www.gutenberg.org/cache/epub/1228/pg1228.txt';
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
<?php
2

Kami menjadi semua teks huruf kecil dan membuat asumsi bahwa setiap satu kata istirahat di ruang. Teks kemudian diubah menjadi sebuah array yang menggunakan

<?php
33 untuk membuatnya lebih mudah untuk menganalisa kata-kata. Anehnya, kata "evolusi" tidak digunakan sekali dalam seluruh kitab yang memberikan teori evolusi asal-usulnya.

Ini adalah hanya sebuah contoh secara otomatis menganalisis teks dalam jumlah besar. Anda bisa melakukan sesuatu yang mirip dengan jenis teks yang disimpan dalam file.

Data pendataan dengan FILE_APPEND

Salah satu contoh yang lebih berguna akan informasi pendataan selama jangka waktu kecil. Bisa latihan rutin, data cuaca atau koloni lebah yang mengamati. Setelah Anda memiliki data dalam string, Anda dengan mudah dapat menyimpannya dalam file dan menambahkan ke data yang ada menggunakan bendera

<?php
27 dengan
<?php
32.

1
<?php
2
3
$book_content = file_get_contents($filename);
5
4
5
$book_content = file_get_contents($filename);
8
6
6
0
<?php
0
<?php
1
6
3
2
6
6
5
2
8
6
7
2
9
3
1
file_put_contents('Biology/Evolution/On the Origin of Species [Charles Darwin].txt', $book_content, LOCK_EX);
0
3
3
3
5
<?php
2

Kode yang sama dapat digunakan untuk sesuatu seperti menyimpan Wikipedia Feature Pasal hari dalam file setiap hari atau melacak Berita dan headlines selama minggu atau bulan. Semua yang perlu Anda lakukan adalah menulis kode untuk mengikis data dan kemudian menyimpannya menggunakan sesuatu yang mirip dengan cuplikan kode di atas. Tutorial seperti Parsing HTML dengan PHP menggunakan DiDOM dapat membantu Anda dengan mengerik bagian.

Alih-alih menulis teks dalam format polos, Anda bisa membungkusnya dalam beberapa HTML untuk membuatnya lebih mudah untuk membaca di browser. Kemungkinan are endless.

Akhir pikiran

Ada banyak cara lain untuk membaca dan menulis data ke file di PHP. Namun,

<?php
14 dan
<?php
32 akan alamat hampir semua kebutuhan dasar Anda tanpa menambahkan komplikasi yang tidak perlu.

Satu-satunya waktu Anda mungkin menghadapi masalah dengan

<?php
14 adalah ketika Anda membaca file yang sangat besar-seperti 2GB atau lebih dalam ukuran. Hal ini karena
<?php
14 load seluruh file ke memori sekaligus, dan ada kesempatan baik kehabisan memori dengan file besar seperti itu. Dalam hal ini, Anda akan harus mengandalkan fungsi seperti
<?php
40 dan
<?php
41 untuk membaca bagian kecil dari file sekaligus.