Bagaimana untuk Mencegah Melarikan Slash Hadapan dalam `json_encode()` PHP?

Susan Sarandon
Lepaskan: 2024-11-27 02:28:10
asal
431 orang telah melayarinya

How to Prevent Forward Slash Escaping in PHP's `json_encode()`?

Melepaskan Garis Miring Hadapan dalam json_encode()

Apabila bekerja dengan data JSON dalam PHP, anda mungkin menghadapi situasi di mana garis miring ke hadapan ("/ ") sedang dilarikan menggunakan json_encode(). Ini boleh berlaku apabila menarik data JSON daripada sumber luaran dan menghuraikannya ke dalam tatasusunan untuk penstrukturan semula. Garis miring ke hadapan yang terlepas boleh menjejaskan integriti data jika dibiarkan tanpa diubah suai.

Untuk melumpuhkan gelagat melarikan diri ini, PHP 5.4 dan ke atas menyediakan bendera JSON_UNESCAPED_SLASHES. Dengan menambahkan bendera ini pada fungsi json_encode() anda, anda boleh menghalang pelepasan automatik garis miring ke hadapan.

$results = json_encode($results, JSON_UNESCAPED_SLASHES);
Salin selepas log masuk

Pengubahsuaian ini akan memastikan bahawa garis miring ke hadapan dalam data JSON anda kekal tidak terlepas, mengekalkan integriti data walaupun selepas caching fail.

Penting Nota:

Sebelum menggunakan JSON_UNESCAPED_SLASHES, adalah penting untuk memahami implikasinya. Bendera ini tidak boleh digunakan dalam konteks web/HTML kerana ia boleh menimbulkan risiko keselamatan. Walau bagaimanapun, ia mungkin boleh digunakan dalam persekitaran komunikasi CLI atau bukan HTTP JSON. Jika melepaskan garis miring ke hadapan adalah penting untuk kebolehbacaan dalam aplikasi web/HTML, pertimbangkan untuk menggunakan kaedah alternatif untuk mengendalikannya.

Contoh:

Pertimbangkan contoh berikut, di mana data JSON diambil dan dihuraikan:

$instagrams = json_decode($response)->data;
Salin selepas log masuk

Selepas penstrukturan semula, data dikodkan semula dan cache:

file_put_contents($cache, json_encode($results));
Salin selepas log masuk

Fail cache yang terhasil akan mengandungi garis miring ke hadapan yang terlepas tanpa JSON_UNESCAPED_SLASHES. Walau bagaimanapun, menambah bendera pada fungsi json_encode() akan mengekalkan garis miring ke hadapan tanpa dilepaskan:

file_put_contents($cache, json_encode($results, JSON_UNESCAPED_SLASHES));
Salin selepas log masuk

Dengan memahami dan menggunakan bendera JSON_UNESCAPED_SLASHES, anda boleh mengawal kelakuan melarikan diri dari garis miring ke hadapan dalam data JSON, memastikan ia integriti dan mengelakkan potensi rasuah data.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Melarikan Slash Hadapan dalam `json_encode()` PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan