PHP ialah bahasa pengaturcaraan sebelah pelayan yang biasa digunakan, terutamanya digunakan untuk membina tapak web dinamik. Apabila berinteraksi dengan data bahagian hadapan, selalunya perlu untuk menukar pembolehubah PHP ke dalam format JSON untuk memudahkan penghuraian dan penggunaan oleh bahagian hadapan. Artikel ini akan memperkenalkan cara menukar data kepada format JSON dalam PHP.
Pertama sekali, kita perlu memastikan versi PHP >=5.2.0, kerana selepas versi ini, PHP mempunyai sambungan json terbina dalam untuk menukar data dalam format json. Sebelum menggunakannya, kita perlu menyemak sama ada sambungan json telah didayakan. Anda boleh melihat status sambungan PHP semasa melalui fungsi phpinfo(), seperti yang ditunjukkan di bawah:
<?php phpinfo(); ?>
Laksanakan kod di atas untuk melihat maklumat PHP dalam penyemak imbas. Jika sambungan json didayakan, anda akan menemui sesuatu yang serupa dengan yang berikut dalam halaman:
json json support => enabled
Jika ia tidak didayakan, anda perlu menambah baris berikut pada fail konfigurasi php.ini: Selepas
extension=json.so
, kita boleh menggunakan fungsi json_encode() terbina dalam PHP untuk menukar tatasusunan atau objek PHP kepada rentetan format json. Berikut ialah contoh mudah:
<?php $person = array( "name" => "John Smith", "age" => 30, "city" => "New York" ); echo json_encode($person); ?>
melaksanakan kod di atas, dan hasil output adalah seperti berikut:
{"name":"John Smith","age":30,"city":"New York"}
Seperti yang anda lihat, fungsi json_encode() berjaya menukar tatasusunan $person ke dalam aksara dalam format json. Semasa proses penukaran, jika data mengandungi aksara khas, seperti petikan berganda, garis miring, dsb., fungsi json_encode() akan melarikan diri secara automatik. Jika data mengandungi aksara Cina, ia perlu dikodkan terlebih dahulu untuk mengelakkan aksara bercelaru. Anda boleh menggunakan fungsi urlencode() untuk mengekod aksara Cina.
Selain tatasusunan, kami juga boleh menukar objek PHP kepada rentetan format json. Hanya tukar objek ke dalam tatasusunan. Contohnya:
<?php class Person { public $name; public $age; public $city; function __construct($name, $age, $city) { $this->name = $name; $this->age = $age; $this->city = $city; } } $person = new Person("John Smith", 30, "New York"); echo json_encode($person); ?>
Hasil output adalah sama seperti contoh sebelumnya:
{"name":"John Smith","age":30,"city":"New York"}
Kadangkala, kami ingin memasukkan aksara Cina dalam rentetan JSON output dan bukannya aksara yang dikodkan. Pilihan JSON_UNESCAPED_UNICODE boleh ditambah pada fungsi json_encode() untuk mengeluarkan aksara Cina yang tidak diproses. Contohnya:
<?php $person = array( "name" => "张三", "age" => 30, "city" => "北京" ); echo json_encode($person, JSON_UNESCAPED_UNICODE); ?>
Hasil output adalah seperti berikut:
{"name":"张三","age":30,"city":"北京"}
Selain menukar data PHP ke format JSON, kami juga boleh menukar data format JSON kepada pembolehubah PHP. Ini boleh dicapai menggunakan fungsi json_decode(). Contohnya:
<?php $json_str = '{"name":"John Smith","age":30,"city":"New York"}'; $person = json_decode($json_str); var_dump($person); ?>
Hasil output adalah seperti berikut:
object(stdClass)#1 (3) { ["name"]=> string(10) "John Smith" ["age"]=> int(30) ["city"]=> string(8) "New York" }
Seperti yang anda lihat, fungsi json_decode() berjaya menukar rentetan format JSON kepada objek PHP. Perlu diingat bahawa semasa proses penukaran, fungsi akan menukar jenis data dalam JSON secara automatik ke dalam jenis data PHP yang sepadan.
Untuk meringkaskan, PHP menyediakan banyak fungsi dan sambungan Kami boleh menukar pembolehubah PHP ke dalam data format JSON dan menggunakannya di bahagian hadapan. Pada masa yang sama, kami juga boleh menukar data format JSON kepada pembolehubah PHP untuk pemprosesan selanjutnya pada bahagian belakang. Bagi mereka yang menggunakan PHP untuk pembangunan web, menguasai fungsi dan sambungan ini akan meningkatkan kecekapan dan kualiti pembangunan.
Atas ialah kandungan terperinci Tukar php ke json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!