Mengapa Json_encode Menambah Backslashes?
Setelah menggunakan json_encode dalam skrip muat naik fail, didapati bahawa data JSON yang terhasil mengandungi yang tidak dijangka garis miring ke belakang. Ini menimbulkan persoalan mengapa json_encode memperkenalkan escape ini.
Pilihan JSON_UNESCAPED_SLASHES
Jawapannya terletak pada pilihan khusus yang tersedia dalam json_encode. Secara lalai, json_encode melepaskan aksara tertentu, termasuk garis miring (garis miring ke belakang), untuk memastikan JSON yang dijana kekal sah. Walau bagaimanapun, dalam beberapa kes, seperti apabila berurusan dengan URL seperti yang disediakan, pelarian ini boleh menjadi tidak diingini.
Untuk menangani perkara ini, pilihan JSON_UNESCAPED_SLASHES telah diperkenalkan dalam PHP versi 5.4. Apabila digunakan, pilihan ini mengarahkan json_encode untuk mengelak daripada melepaskan garis miring, menyelesaikan isu yang dihadapi dengan berkesan.
Pengubahsuaian Kod
Untuk melaksanakan penyelesaian, hanya masukkan pemalar JSON_UNESCAPED_SLASHES sebagai parameter kedua dalam fungsi json_encode. Kod yang diubah suai sepatutnya kelihatan seperti ini:
echo json_encode($result, JSON_UNESCAPED_SLASHES); // <-- Adds the JSON_UNESCAPED_SLASHES option
Ini memastikan JSON yang terhasil tidak mengandungi sebarang garis miring ke belakang yang tidak perlu, memberikan hasil yang diingini:
{ "logo_url": "http://mysite.com/uploads/gallery/7f/3b/f65ab8165d_logo.jpeg", "img_id": "54", "feedback": { "message": "File uploaded", "success": true } }
Atas ialah kandungan terperinci Mengapakah `json_encode` Menambahkan Sebatan Terbalik pada Data JSON Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!