Tautan asli: http://hi.baidu.com/lostdays/blog/item/8d76c300ec4e3c15738b65fa.html
Katalog Umum
Apa, Mengapa, Bagaimana
Apa
Mengapa
Bagaimana
sintaks serialisasi PHP
Contoh serialisasi PHP
Buat serial ke JSON dalam JavaScript — menggunakan json2.js
Buat serial ke JSON dalam JavaScript—menggunakan prototype.js
PHP dengan fungsi JSON
json_decode
fungsi json_encode
contoh fungsi json_decode
contoh fungsi json_encode
memberikan
penjelasan latar belakang pengetahuan
yang sebenarnya
Bagian JavaScript ujung depan
Bagian belakang PHP
Apa, Mengapa, Bagaimana
Apa
Oke sobat, mari kita mulai perjalanan konsep baru ini. Mungkin semua orang belum terlalu memperhatikan topik serialisasi sebelumnya dan menemukan serialisasi ini Setelah itu, saya bosan dan membuat plugin WordPress. Saat ini, saya menggunakan serialisasi dan ternyata sangat nyaman dalam situasi tertentu.
Mari kita jelaskan serialisasi terlebih dahulu: Sederhananya, serialisasi adalah proses mengubah variabel menjadi aliran byte. Pengenalan serialisasi secara efektif memecahkan masalah penyimpanan dan transmisi objek. Misalnya, saya membuat objek dalam JavaScript dan sekarang saya ingin menyimpan objek ini ke database sisi server objek sering digunakan. Dalam serialisasi JavaScript, kami harus menyebutkan JSON. JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan. Mudah bagi manusia untuk membaca dan menulis, dan mudah bagi mesin untuk menguraikan dan menghasilkan. Hal ini didasarkan pada Bahasa Pemrograman JavaScript, bagian dari Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON menggunakan format teks yang sepenuhnya tidak bergantung pada bahasa, namun juga menggunakan konvensi yang mirip dengan keluarga bahasa C (termasuk C, C++, C#, Java, JavaScript, Perl, Python, dll.). Properti ini menjadikan JSON bahasa pertukaran data yang ideal.
Orang biasanya membandingkan JSON dan XML. Keduanya merupakan sarana untuk meratakan objek (kami akan menjelaskan "perataan" ini nanti). XML dicirikan oleh struktur yang ketat, sedangkan JSON dicirikan oleh kesederhanaan dan kemudahan membaca program untuk analisa, karena dapat dengan mudah mengubah suatu objek menjadi bentuk aliran karakter, seperti kode berikut:
Kode:
{"type":"human","name":"hanguofeng","age": 22 }
adalah ekspresi JSON yang menyimpan suatu objek. Bagaimana cara kita mengembalikannya ke suatu objek? Caranya sangat sederhana, sebagai berikut:
Kode:
var animal_str = '{"type":"human","name":"hanguofeng","age":22}';
var animal2=eval('(' + animal_str + ')');
Kami menggunakan fungsi evaluasi JavaScript untuk mengoperasikan ekspresi JSON dan mengembalikan nilai untuk mendapatkan suatu objek kagumi pemikiran pencipta format JSON. Tadinya saya mau ngomongin serialisasi, tapi saya "tidak sengaja" menyebut JSON dan banyak membicarakannya Haha, apakah saya keluar topik? Tidak, serialisasi PHP sangat mirip dengan JSON. Ekspresi serialisasi PHP adalah sebagai berikut:
Kode:
a:3:{s:4:"type";s:5:"manusia";s:4:"nama";s:10:"hanguofeng";s:3:"usia";s:2:" 20";}
Strukturnya terlihat agak mirip dengan JSON. Faktanya, ekspresi ini adalah hasil serial dari array berikut:
Kode:
$hewan =
susunan
(
"tipe" => "manusia",
"nama" => "hanguofeng",
"usia" => "20"
);
Oke, pendahuluan di atas hanya untuk memberi gambaran kasar tentang apa itu serialisasi dan JSON. Anda tidak perlu terlalu terbelit dengan kode di sini. Kami akan menjelaskannya secara detail nanti gunakan serialisasi.
Mengapa
serialisasi pertama kali muncul sebagai kemudahan untuk transmisi data. Saat saya mengajukan pertanyaan di awal artikel ini, saya membuat objek dalam JavaScript. Sekarang saya ingin menyimpan objek ini ke database sisi server. Faktanya, ini adalah pertanyaan "bagaimana cara mengirimkan objek dari browser ke server". Selama proses transmisi ini, kita mengetahui bahwa hanya aliran karakter yang benar-benar dapat ditransmisikan. , tapi banyak objek Tapi multidimensi. Jika objek yang akan ditransfer adalah string, itu sangat sederhana. Kita bisa langsung menggunakannya sebagai konten yang ditransfer. Jika objek yang akan ditransfer adalah array atau struktur lainnya, kita perlu menggunakan karakter. Untuk mendeskripsikannya, misalnya di telepon, jika saya bertanya siapa nama Anda, Anda akan memberi tahu saya bahwa nama Anda Zhang San atau Li Si, dan jika saya bertanya, seperti apa penampilan Anda? , Anda perlu menggunakan kata-kata. Telah dijelaskan kepada saya bahwa media yang kami gunakan untuk mengirimkan data seringkali sama dengan saluran telepon ini, yang hanya dapat mengirimkan aliran karakter, dan proses yang kami gunakan untuk mendeskripsikan objek sebenarnya adalah proses serialisasi. .
Selain itu, serialisasi juga dapat digunakan untuk penyimpanan objek secara persisten. Mungkin Anda, seperti saya, pernah berpikir untuk menyimpan objek di bidang database tertentu. Sekarang kita dapat melakukan ini dengan sangat sederhana, dan bidang database Anda tidak memerlukannya untuk diset ke format khusus, setel saja ke varchar (tentu saja, jika objeknya besar, Anda mungkin perlu menyetelnya ke teks).
Bagaimana
sintaks serialisasi PHP
Oke, saya rasa Anda sudah memahami pertanyaan Apa dan Mengapa. Di akhir bagian ini, kita akan membahas sesuatu yang lebih teoritis, yaitu cara menggunakan PHP untuk membuat serialisasi dan deserialisasi data, cara membuat serialisasi JavaScript. objek (yaitu mengubahnya ke format JSON) dan cara membatalkan serialisasinya. Terakhir, cara menjalin hubungan antara serialisasi JSON dan PHP.
PHP memberi kita dua fungsi untuk operasi serialisasi dan deserialisasi. Kedua fungsi ini adalah: serialize() dan unserialize(). Keduanya cocok untuk PHP4 dan PHP5. Penjelasannya di bawah:
serialize()
(PHP 4, PHP 5, PECL axis2 :0.1.0-0.1.1)
string
nilai representasi yang dapat disimpan
(campuran $value )
Dapatkan nilai representasi yang dapat disimpan. Fungsi ini digunakan untuk menyimpan atau mentransfer nilai dan struktur variabel PHP tanpa kehilangan.
Jika Anda perlu mengonversi nilai serial kembali ke variabel PHP, Anda dapat menggunakan fungsi unserialize().
Nilai
parameter
Yaitu, ekspresi yang diserialkan. serialize() menangani semua tipe kecuali penunjuk sumber daya, dan Anda bahkan dapat membuat serialisasi array berisi elemen yang menunjuk ke dirinya sendiri. Array atau objek yang Anda serialkan yang berisi pointer loop akan tetap disimpan, tetapi pointer lainnya akan hilang.
Saat membuat serialisasi suatu objek, PHP mencoba memanggil fungsi anggotanya terlebih dahulu __sleep(). Ini akan memungkinkan hal-hal seperti pembersihan akhir sebelum objek diserialkan. Demikian pula, ketika objek dipulihkan menggunakan fungsi unserialize(), fungsi anggota __wakeup() akan dipanggil.
Nilai yang dikembalikan
mengembalikan string yang berisi ekspresi aliran byte dari objek yang dapat disimpan di mana saja.
unserialize()
(PHP 4, PHP 5, PECL axis2:0.1.0-0.1.1)
Dapatkan
nilai variabel PHP dari ekspresi tersimpan
yang dicampur unserialize ( string $str )
unserialize() mengambil tipe sederhana dari variabel serial dan mengubahnya kembali menjadi nilai variabel PHP.
Parameter
str
string serial Jika variabel yang dideserialisasi adalah sebuah objek, setelah berhasil memulihkan struktur objek, PHP akan secara otomatis mencoba menjalankan fungsi anggota __wakeup() objek tersebut (jika ada).
arahan unserialize_callback_func: Anda dapat mengatur fungsi panggilan balik untuk dieksekusi selama proses ini, jika kelas yang tidak terdefinisi harus dipakai selama deserialisasi (untuk menghindari objek yang tidak lengkap "__PHP_Incomplete_Class"). Anda dapat menggunakan php.ini, ini_set() atau .htaccess untuk mendefinisikan "unserialize_callback_func". Ini dipanggil ketika kelas yang tidak terdefinisi dipakai. Untuk menonaktifkan fitur ini cukup setel ke kosong.
Nilai yang dikembalikan
mengembalikan nilai yang dikonversi, yang dapat berupa variabel Boolean, bilangan real, bilangan floating point, string, array, atau objek.
Jika string yang masuk tidak dapat dideserialisasi, FALSE dikembalikan dan kesalahan PEMBERITAHUAN muncul.
(Di atas diterjemahkan dari manual PHP)
Serialisasi dan deserialisasi
arrayinstance serialisasi PHP
Oke, mari kita pelajari dengan sebuah contoh. Pertama, buat file sample1.php. Kami menggunakan pernyataan berikut dalam file ini susunan:
Kode:
<?php
$hewan =
susunan
(
"tipe" => "manusia",
"nama" => "hanguofeng",
"usia" => "20"
);
?>
Untuk menguji nilai array ini, Anda dapat menggunakan fungsi print_r() untuk mengeluarkan array. Hasil outputnya adalah sebagai berikut:
Kode:
Himpunan
(
[mengetik] => manusia
[nama] => Hanguofeng
[usia] => 20
)
Lalu mari kita buat serialisasinya. Kode serialisasinya adalah sebagai berikut:
Kode:
<?php
$hewan =
susunan
(
"tipe" => "manusia",
"nama" => "hanguofeng",
"usia" => "20"
);
$animal_ser=serialisasi($animal);
echo($animal_ser);
?>
menyimpan
string serial yang dikembalikan dalam variabel $animal_ser, dan mengeluarkannya.
a:3:{s:4:"type";s:5:"manusia";s:4:"nama";s:10:"hanguofeng";s:3:"usia";s:2:" 20";}
Mari kita parsing string ini:
a:3 menunjukkan bahwa ini adalah objek array (a), yang memiliki tiga objek bawaan (3)
Bagian di dalam kurung kurawal adalah daftar ekspresi objek yang dipisahkan koma. Mengambil s:4:"type" sebagai contoh, ini mewakili string dengan panjang 4 digit (4) dan nilai "type" , yaitu Kunci elemen pertama dari array hash.
Kami tidak akan membahas detailnya di bagian berikut. Anda dapat mencoba membuat serial berbagai objek sendiri dan melihat bagaimana string serial dibuat.
Mari kita lihat deserialisasi array, yaitu mengembalikan string serial yang kita buat di atas menjadi sebuah array
.
<?php
$animal_ser='a:3:{s:4:"type";s:5:"manusia";s:4:"nama";s:10:"hanguofeng";s:3:"usia";s :2:"20";}';
$animal = batalkan serialisasi($animal_ser);
print_r($hewan);
?>
Pada baris pertama, kita berasumsi bahwa nilai $animal_ser adalah string serial yang diperoleh di atas. Pada baris kedua, string dikembalikan ke array awal dan ditetapkan ke $animal. Terakhir, array $animal adalah output time Outputnya sama dengan output array asli di awal bagian ini, yaitu:
kode:
Himpunan
(
[mengetik] => manusia
[nama] => Hanguofeng
[usia] => 20
)
Dengan cara ini kita telah menyelesaikan deserialisasi array.
Perluas pengetahuan - Serialisasi dan deserialisasi objek khusus
Serialisasi array adalah operasi dasar. Namun, dalam pemrograman sebenarnya, kita mungkin sering membuat serial jenis variabel lain, seperti Objek kustom diserialkan. Ini adalah kelas A yang ditulis sendiri (disimpan di classa .inc):
Kode:
<?php
kelas A {
var $satu = 1;
fungsi tampilkan_satu() {
gema $ini->satu;
}
}
?>
Kami membuat sebuah instance dari kelas dan membuat serial instance tersebut dalam kode berikut:
Kode:
<?php
include("classa.inc");
$a=baru A;
echo(serialisasi($a));
?>
Konten keluaran saat ini adalah:
kode:
O:1:"A":1:{s:3:"satu";i:1;}
Secara keseluruhan, string serial ini menampilkan status objek saat ini, yaitu nilai i adalah 1. Mari kita analisa detailnya satu per satu. O:1: Karena variabel saat ini adalah objek khusus, karakter karakterisasinya adalah "O", yang berarti Objek. "A" berikut mengidentifikasi di kelas mana variabel tersebut berasal, ini dia kelas A. Di dalam tanda kurung kurawal terdapat nama dan nilai setiap atribut instance. Kemudian kami melakukan deserialisasi:
Kode:
<?php
include("classa.inc");
$s = 'O:1:"A":1:{s:3:"satu";i:1;}';
$a = batalkan serialisasi($s);
$a->tampilkan_satu();
?>
Pada saat ini, "1" adalah output, yaitu metode show_one() kelas A dipanggil. Anda dapat melihat bahwa meskipun string serial dari instance tidak berisi metode kelas, kita masih dapat memanggil metode kelas setelah kita melakukan deserialisasi. Fitur ini didukung di PHP4 dan yang lebih baru (tentu saja, Anda perlu menyertakan file definisi kelas classa.inc).
Catatan: Anda dapat merujuk ke bagian Referensi Bahasa->Kelas dan Objek->Serialisasi objek - objek dalam sesi pada manual PHP.
Membuat serial ke JSON dalam JavaScript—menggunakan json2.js
Tidak ada metode bawaan untuk membuat serial objek secara langsung dalam JavaScript. Tentu saja Anda dapat menulisnya sendiri, tetapi saya tetap sangat menyarankan Anda untuk bermalas-malasan di sini dan menggunakan komponen JSON yang sudah jadi situs web resmi www.json.org menyediakan pustaka kode untuk serialisasi JSON objek JavaScript - json2.js, yang bisa Anda dapatkan dari sini.
Setelah mendapatkan file json2.js, Anda dapat membuka file ini. Bagian pertama file berisi banyak informasi komentar. Jika bahasa Inggris Anda cukup baik, Anda dapat menghilangkan bagian ini dan cukup merujuk ke komentar file. Oke, jika sebagai programmer sudah cukup banyak melihat huruf dan ingin melihat karakter + huruf Mandarin saya, maka Anda bisa melanjutkan ke bawah.
Cukup terjemahkan komentar ini: Silakan merujuk ke http://www.JSON.org/js.html.
File ini membuat objek global JSON yang berisi dua metode.
JSON.stringify(nilai, daftar putih)
value nilai JavaScript apa pun, biasanya berupa objek atau array
whitelist Parameter array opsional yang digunakan untuk menentukan bagaimana nilai objek diserialkan. Metode ini menghasilkan teks JSON dari nilai JavaScript. Saat membuat serial, ada tiga kemungkinan berdasarkan daftar putih parameter opsional:
Jika suatu objek memiliki metode toJSON, panggil metode ini dan nilai kembalian metode toJSON akan diserialkan.
Jika tidak, jika parameter daftar putih opsional adalah array, elemen dalam array akan digunakan untuk memilih anggota objek untuk serialisasi.
Jika tidak, jika parameter daftar putih tidak digunakan, semua anggota objek akan diserialkan.
Jika suatu nilai tidak memiliki representasi JSON, seperti tidak terdefinisi atau suatu fungsi, maka nilai tersebut tidak akan diserialkan. Dalam objek, nilai tersebut akan diabaikan, dan dalam array akan diganti dengan nol.
JSON.stringify(undefinisi) akan mengembalikan tidak terdefinisi. Tanggal akan diserialkan ke tanggal ISO yang dikutip.
Contoh:
kode:
var text = JSON.stringify(['e', {pluribus: 'unum'}]);
//teksnya adalah '["e",{"pluribus":"unum"}]'
JSON.parse(teks, filter)
Metode ini mem-parsing teks JSON dan menghasilkan komponen atau larik, yang mungkin memunculkan pengecualian SyntaxError.
Parameter filter opsional adalah fungsi yang memfilter dan mengubah hasil. Parameter ini menerima setiap kunci dan nilai, dan nilai kembaliannya digunakan untuk menggantikan nilai sumber. Jika mengembalikan nilai yang diterima, hasilnya tidak berubah. Jika hasilnya tidak ditentukan, anggota tersebut akan dihapus.
Contoh:
kode:
//Parsing teks dan jika kunci berisi string "tanggal", ubah nilainya menjadi tanggal
myData = JSON.parse(teks, fungsi (kunci, nilai) {
return key.indexOf('date') >= 0 ? Tanggal baru(nilai): nilai;
});
Tutorial pengantar di atas telah memberi Anda pemahaman dasar tentang cara menggunakan json2.js. Saya tidak akan membahas detail tentang file ini di sini. Saya hanya punya tip kecil. Jika Anda hanya ingin mengurai teks JSON, Anda dapat menggunakan eval () Fungsi, fungsi tersebut adalah fungsi bawaan JavaScript. Misalnya, untuk mengurai teks JSON yang dihasilkan dalam kasus JSON.stringify, Anda dapat menggunakan:
kode:
var myE = eval('["e",{"pluribus":"unum"}]');
untuk mendapatkan objek myE.
Buat serial ke JSON dalam JavaScript—gunakan prototype.js
Jika Anda seperti saya dan suka menggunakan kerangka kerja JavaScript sumber terbuka dalam proyek Anda, maka Anda mungkin dapat melewati penggunaan file json2.js. Di sini prototype.js adalah Misalnya, ini File dapat diunduh di http://www.prototypejs.org . Karena artikel ini bukan tentang kerangka JavaScript, saya berasumsi di sini bahwa Anda sudah memiliki pemahaman tentang penggunaan prototype.js.
prototype.js menyediakan metode toJSON untuk objek Objek. Anda dapat menggunakan metode Object.toJSON() untuk mencapai serialisasi objek, misalnya:
kode:
var kucing=
{
nama:"halokitty",
tinggi:"6 apel"
}
alert(Object.toJSON(cat));
//Kotak dialog akan muncul dengan konten {"name": "hellokitty", "height": "6 apel"}
Selain itu, ada dukungan JSON tambahan di prototype.js, terutama penguraian konten JSON dalam permintaan pengembalian Ajax di objek Ajax. Ini tidak ada hubungannya dengan konten kami untuk saat ini dan tidak akan diperkenalkan lagi.
PHP dan JSON
Di atas kita telah mempelajari tentang metode serialisasi objek di PHP dan metode serialisasi objek menjadi JSON di JavaScript. Anda mungkin akan mempertanyakan mengapa saya menggabungkan keduanya, karena sintaksisnya sebenarnya tidak persis sama, namun, di PHP dimungkinkan untuk melakukan deserialisasi teks JSON, dan juga dimungkinkan untuk membuat serialisasi objek PHP ke JSON alih-alih teks bergaya PHP. Hal ini terutama dilakukan oleh dua fungsi json_decode dan json_encode. Perlu dicatat bahwa kedua fungsi ini hanya didukung di PHP 5 >= 5.2.0 tidak dapat digunakan.
json_decodesintaks
fungsi
campuran json_decode ( string $json [, bool $assoc] )
Dapatkan teks berkode JSON dan ubah menjadi
parameter
variabel PHPjson
Teks yang dikodekan JSON
asosiasi
Jika TRUE, nilai yang dikembalikan adalah array asosiatif.
Nilai yang dikembalikan
adalah
objek, atau jika parameter assoc opsional adalah TRUE, array asosiatif akan
dikembalikan
.
Fungsi ini mengembalikan
nilai
parameter
ekspresi JSON dari suatu nilai
Nilai yang akan dikodekan dapat berupa jenis parameter apa pun kecuali sumber daya. Fungsi ini hanya berfungsi dalam format pengkodean UTF-8.
Nilai yang dikembalikan.
Mengembalikan teks JSON yang dikodekan
jika
berhasil asumsinya, yaitu, kita memiliki modul registrasi pengguna, yang bekerja dengan cara "berorientasi objek". Dalam contoh fungsi json_decode, kita mengubah informasi registrasi pengguna menjadi atribut kelas di latar depan, dan kemudian meneruskannya ke latar belakang. file php (untuk mempermudah, Ajax tidak digunakan di sini). Dalam contoh json_encode, kami mereferensikan file js di file html, alamat menunjuk ke file php, dan menampilkan objek pengguna yang dikodekan json di file php (juga untuk kesederhanaan, kami langsung membuat objek tanpa mendapatkan informasi dari database), dan output dalam html.
Oke, pertama-tama mari kita lihat halaman front-end json_encode.htm. Halaman ini meniru halaman registrasi biasa. Ada formulir di dalamnya. Saat dikirimkan, fungsi JavaScript dipicu, objek pengguna dibuat, dan konten formulir ditetapkan sebagai objek pengguna, menghasilkan teks JSON dan meneruskannya ke file json_encode.php latar belakang dalam mode POST. Di file js_encode.php, gunakan fungsi json_decode untuk mengurai teks JSON menjadi objek PHP dan mengeluarkannya.
Oke langsung saja kita lihat dulu file json_encode.html. Kode filenya seperti berikut :
Kode :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<kepala>
<meta http-equiv="Jenis Konten" content="teks/html; charset=utf-8" />
<title>json_decode</title>
<skrip src="json2.js" type="teks/javascript"></skrip>
<skrip tipe="teks/javascript">
fungsi JSON_test(o){
var pengguna = {
nama:document.getElementById('txt_name').nilai,
email:document.getElementById('txt_email').nilai,
kata sandi:document.getElementById('txt_name').value
}
var json_string = JSON.stringify(pengguna);
document.getElementById('txt_json').value=json_string;
alert("Klik OK untuk mengirimkan formulir");
o.kirim();
}
</skrip>
</kepala>
<tubuh>
<form id="form1" name="form1" method="post" action="json_encode.php" onsubmit="JSON_test(ini)">
<label for="txt_name">Nama</label>
<p>
<input type="teks" nama="txt_name" id="txt_name" />
</p>
<label for="txt_email">Email</label>
<p>
<input type="teks" nama="txt_email" id="txt_email" />
</p>
<p>
<label for="txt_password">Sandi</label>
</p>
<p>
<input type="teks" nama="txt_password" id="txt_password" />
</p>
<p>
<masukan tipe="teks" nama="txt_json" id="txt_json" />
<label untuk="tombol"></label>
<input type = "kirim" nama = "tombol" id = "tombol" nilai = "JSON" />
</p>
</bentuk>
</tubuh>
</html>
Saat formulir dikirimkan, fungsi JavaScript JSON_text() akan dipicu. Fungsi ini pertama-tama membuat pengguna objek JavaScript, menetapkan atribut nama, email, dan kata sandinya ke nilai formulir yang sesuai, lalu menggunakan JSON.stringify metode file json2.js menjadi Diubah menjadi teks JSON json_string, dan akhirnya field tersembunyi diatur (untuk memperjelas di sini saya menampilkan bidang tersembunyi ini dalam bentuk kotak teks) nilai txt_json adalah json_string, dan formulir diserahkan.
Selanjutnya masuk ke file json_encode.php, seperti berikut:
Kode:
<?php
$json_string = $_POST["txt_json"];
jika(ini_get("magic_quotes_gpc")=="1")
{
$json_string=stripslash($json_string);
}
$pengguna = json_decode($json_string);
echo var_dump($pengguna);
?>
Dalam file ini, pertama-tama dapatkan nilai bidang formulir POST txt_json di file json_encode.html, masukkan ke dalam variabel $json_string, lalu nilai jika pengaturan PHP saat ini adalah magic_quotes_gpc=On, yaitu tanda kutip ganda yang masuk akan diubah maknanya, sehingga fungsi json_decode tidak dapat menguraikannya, jadi kita perlu unescape. Kemudian, gunakan fungsi json_decode untuk mengubah teks JSON menjadi objek, simpan dalam variabel $user, dan terakhir gunakan echo var_dump($user)
;
objek(Kelas std)#1 (3) {
["nama"]=>
string(10) "hanguofeng"
["email"]=>
string(18) " [email protected] "
["kata sandi"]=>
string(10) "hanguofeng"
}
instance fungsi json_encode
masih terdiri dari dua bagian yaitu json_enode.html dan json_encode.php. Pada file json_decode.html, bentuknya pada dasarnya mirip dengan file json_decode.html, namun bedanya kali ini kita ingin mendapatkan teks JSON pengguna terkait dari file json_encode.php. Mari kita lihat file PHP ini pertama:
Kode:
<?php
Pengguna kelas{
publik $nama="";
publik $email="";
publik $kata sandi="";
};
$penggunasaya = pengguna baru;
$pengguna saya->nama="hanguofeng";
$penggunasaya->email=" [email protected] ";
$penggunasaya->kata sandi="hanguofeng";
$json_string = json_encode($pengguna saya);
?>
var pengguna = <?php echo($json_string)?>;
File ini pertama-tama membuat kelas pengguna, kemudian memperoleh turunan dari kelas pengguna myUser, dan menetapkan nama pengguna, email, dan kata sandinya. Kemudian menggunakan fungsi json_encode untuk mengubahnya menjadi teks JSON, menyimpannya dalam variabel $json_string, dan terakhir menampilkan sepotong Kode JavaScript untuk membuat variabel global pengguna di JavaScript.
Selanjutnya kita perlu memasukkan file json_encode.php ke dalam file json_encode.html dan mendapatkan berbagai atribut dari objek pengguna, sebagai berikut:
Kode:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<kepala>
<meta http-equiv="Jenis Konten" content="teks/html; charset=utf-8" />
<title>json_encode</title>
<skrip src="json_encode.php" type="teks/javascript"></skrip>
</kepala>
<tubuh>
<form id = "form1" nama = "form1" metode = "posting">
<label for="txt_name">Nama</label>
<p>
<input type="teks" nama="txt_name" id="txt_name" />
</p>
<label for="txt_email">Email</label>
<p>
<input type="teks" nama="txt_email" id="txt_email" />
</p>
<p>
<label for="txt_password">Sandi</label>
</p>
<p>
<input type="teks" nama="txt_password" id="txt_password" />
</p>
</bentuk>
<skrip tipe="teks/javascript" >
document.getElementById('txt_name').value=pengguna.nama;
document.getElementById('txt_email').value=pengguna.email;
document.getElementById('txt_password').value=pengguna.kata sandi;
</skrip>
</tubuh>
</html>
Dalam file ini, Anda perlu memperhatikan dua hal. Yang pertama adalah kami memperkenalkan file json_encode.php sebagai file JavaScript dengan kode ini:
Kode:
<skrip src="json_encode.php" type="teks/javascript"></skrip>
Poin kedua adalah:
Kami menambahkan kode JavaScript setelah kode kotak teks, mengoperasikan atribut nilai kotak teks, dan menetapkan nilainya ke nilai yang sesuai dari objek pengguna.