Php menulis array ke file

Jika Anda memiliki daftar item (daftar nama mobil, misalnya), menyimpan mobil dalam satu variabel dapat terlihat seperti ini

$mobil1 = "Volvo";
$mobil2 = "BMW";
$mobil3 = "Toyota";

Namun, bagaimana jika Anda ingin menelusuri mobil dan menemukan mobil tertentu?

Solusinya adalah membuat array

Sebuah array dapat menampung banyak nilai di bawah satu nama, dan Anda dapat mengakses nilai dengan mengacu pada nomor indeks

Ada dua cara untuk melakukan hal ini. Salah satunya melibatkan penyandian array ke dalam format JSON. Yang lainnya melibatkan fungsi serialisasi, yang pada dasarnya akan membuat representasi nilai PHP yang dapat disimpan (dalam hal ini, array kita)

JSON

Untuk menyimpan array PHP ke file teks menggunakan fungsi JSON, kita dapat melakukan langkah-langkah berikut

  1. Enkode array menjadi string JSON menggunakan json_encode
  2. Simpan string JSON ke file teks yang dimaksud
  3. Jika kita ingin memuat string JSON dari file teks kita, maka kita dapat menggunakan fungsi file_get_contents
  4. Terakhir, kita dapat mendekode string JSON kembali ke dalam array dengan menggunakan fungsi json_decode

Lihatlah contoh berikut

//Example array.
$array = array('Ireland', 'England', 'Wales', 'Northern Ireland', 'Scotland');

//Encode the array into a JSON string.
$encodedString = json_encode($array);

//Save the JSON string to a text file.
file_put_contents('json_array.txt', $encodedString);

//Retrieve the data from our text file.
$fileContents = file_get_contents('json_array.txt');

//Convert the JSON string back into an array.
$decoded = json_decode($fileContents, true);

//The end result.
var_dump($decoded);

Secara pribadi, saya lebih suka metode di atas, hanya karena ukuran file akan lebih kecil dan format JSON jauh lebih portabel

[EDIT BY danbrown AT php DOT net: This is a revised function with a few bugfixes and improvements done by this author.  The original function example was written by arthur AT mclean DOT ws, and rewritten between by arthur AT korn DOT ch.]_

- when calling str_replace(), you must assign $cell the return value or nothing gets saved

- when using strchr(), you should explicitly check !== FALSE, or it'll treat a return value of 0 (found the character at string position 0) as FALSE

- Excel seems to quote not only fields containing commas, but fields containing quotes as well, so I've added another strchr() for quotes; I'm not saying Microsoft knows the correct way for sure, but it seems reasonable to me_

- the original function put a space after each comma; that might be legal, I don't know, but I've never seen it (and I don't think it is, because then how would you indicate you wanted a field to start with a space other than by quoting it?)

- the original function didn't correctly return the length of the data outputted_

Here's the function, fixed up a bit:

function fputcsv($handle, $row, $fd=',', $quot='"')
{
   $str='';
   foreach ($row as $cell) {
       $cell=str_replace(Array($quot,        "\n"),
                         Array($quot.$quot,  ''),
                         $cell);
       if (strchr($cell, $fd)!==FALSE || strchr($cell, $quot)!==FALSE) {
           $str.=$quot.$cell.$quot.$fd;
       } else {
           $str.=$cell.$fd;
       }
   }
_

   fputs($handle, substr($str, 0, -1)."\n");_

   return strlen($str);
}
?>

- when calling str_replace(), you must assign $cell the return value or nothing gets saved0

As of PHP 5.6 the file(), file_get_contents(), and fopen() functions will return false if you are referencing a source URL that doesn't have a valid SSL certificate. Presumably, you will run into this a lot in your development environments this will drive you crazy.

You will need to create a stream context and provide it as an argument to the various file operations to tell it to ignore invalid SSL credentials.

$args = array("ssl"=>array("verify_peer"=>false,"verify_peer_name"=>false),"http"=>array('timeout' => 60, 'user_agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/3.0.0.1'));

$context = stream_context_create($args);
$httpfile = file($url, false, $context);

Jika filename_ tidak ada, file dibuat. Jika tidak, file yang ada akan ditimpa, kecuali flag FILE_APPEND disetel

Parameter

filename

Path ke file tempat menulis data

data

Data yang akan ditulis. Dapat berupa string, array, atau sumber daya aliran

Jika data_ adalah sumber aliran, buffer aliran yang tersisa akan disalin ke file yang ditentukan. Ini mirip dengan menggunakan stream_copy_to_stream()

Anda juga dapat menentukan parameter data_ sebagai array dimensi tunggal. Ini setara dengan $data_1

$data_2

Nilai $data2 dapat berupa kombinasi apa saja dari flag berikut, digabungkan dengan operator biner OR ($data4)

FlagsFlagDescription$data5Cari filename di direktori yang tersedia. Lihat untuk informasi lebih lanjut. FILE_APPENDJika file filename sudah ada, tambahkan data ke file alih-alih menimpanya. $data_9Dapatkan kunci eksklusif pada file saat melanjutkan ke penulisan. Dengan kata lain, panggilan flock() terjadi antara panggilan fopen() dan panggilan fwrite(). Ini tidak identik dengan panggilan fopen() dengan mode "x". $flags0

Sumber daya konteks yang valid dibuat dengan stream_context_create()

Nilai Pengembalian

Fungsi ini mengembalikan jumlah byte yang ditulis ke file, atau $flags1 pada kegagalan

Peringatan

Fungsi ini dapat mengembalikan Boolean $flags1, tetapi juga dapat mengembalikan nilai non-Boolean yang dievaluasi menjadi $flags1. Silakan baca bagian tentang Boolean untuk informasi lebih lanjut. Gunakan operator === untuk menguji nilai kembalian dari fungsi ini

Contoh

Contoh #1 Contoh penggunaan sederhana

$flags4

Contoh #2 Menggunakan bendera

$flags5

Catatan

Catatan. Fungsi ini aman untuk biner

Tip

URL dapat digunakan sebagai nama file dengan fungsi ini jika telah diaktifkan. Lihat fopen() untuk detail lebih lanjut tentang cara menentukan nama file. Lihat Protokol dan Pembungkus yang Didukung untuk tautan ke informasi tentang kemampuan apa yang dimiliki berbagai pembungkus, catatan tentang penggunaannya, dan informasi tentang variabel yang telah ditentukan sebelumnya yang mungkin mereka sediakan

Bagaimana cara menulis array ke file?

Anda dapat menyimpan larik NumPy ke file CSV menggunakan fungsi savetxt() . Fungsi ini mengambil nama file dan array sebagai argumen dan menyimpan array ke dalam format CSV.

Bagaimana cara membuat file CSV di PHP dari array?

Untuk mengonversi larik menjadi file CSV, kita dapat menggunakan fungsi fputcsv() . Fungsi fputcsv() digunakan untuk memformat baris sebagai file CSV (nilai yang dipisahkan koma) dan menulisnya ke file terbuka.

Bagaimana cara menulis konten dalam file di PHP?

PHP Tulis ke File - fwrite() . Parameter pertama fwrite() berisi nama file yang akan ditulis dan parameter kedua adalah string yang akan ditulis.

Bagaimana cara mengubah array menjadi string di PHP?

Dalam PHP, fungsi implode() adalah fungsi bawaan yang mengambil larik dan mengubahnya menjadi string. implode() tidak mengubah array asli. Tidak peduli apakah array adalah array yang diindeks atau asosiatif. Setelah Anda meneruskan larik ke implode() , ia menggabungkan semua nilai menjadi string.