Saya menarik JSON dari Instagram:
$instagrams = json_decode($response)->data;
Kemudian mem-parsing variabel ke dalam array PHP untuk merestrukturisasi data, kemudian meng-encode ulang dan menyimpan file:
file_put_contents($cache,json_encode($results));
Ketika saya membuka file cache semua garis miring "/" saya sedang melarikan diri:
http:\/\/distilleryimage4.instagram.com\/410e7...
Saya mengumpulkan dari pencarian saya yang json_encode()
secara otomatis melakukan ini ... apakah ada cara untuk menonaktifkannya?
Jawaban:
Ya, Anda hanya perlu menggunakan
JSON_UNESCAPED_SLASHES
bendera.Jika Anda tidak memiliki PHP 5.4, pilih salah satu dari banyak fungsi yang ada dan modifikasi sesuai kebutuhan Anda, misalnya http://snippets.dzone.com/posts/show/7487 (salinan arsip) .
Contoh Demo
Contoh Output:
sumber
strip_slashes
dan untuk JS phpjs.org/functions/stripslashes\/
urutan melarikan diri yang valid untuk/
) , lihat juga stackoverflow.com/a/10210367/367456 .JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES
harus default, bukan (aneh) ... Bagaimana mengatakannya kepada php-developer?Ya , tapi jangan - melarikan diri ke garis miring adalah hal yang baik . Saat menggunakan
<script>
tag JSON di dalam, itu perlu di</script>
mana saja - bahkan di dalam string - akan mengakhiri tag skrip.Tergantung di mana JSON digunakan itu tidak perlu, tetapi dapat diabaikan dengan aman.
sumber
"\/"
persis sama dengan nilai string"/"
- dan parser JSON yang berfungsi akan memperlakukannya seperti itu. Aturan yang sama berlaku untuk string javascript, jadi memberi makan JSON sebagai kode javascript juga tidak akan memiliki masalah. Saya terkejut PHP bahkan punyaJSON_UNESCAPED_SLASHES
bendera.Di sisi lain, saya mengalami masalah dengan PHPUNIT yang menyatakan bahwa url terkandung atau sama dengan url yang json_encoded -
yang saya harapkan:
http://localhost/api/v1/admin/logs/testLog.log
akan dikodekan ke:
http:\/\/localhost\/api\/v1\/admin\/logs\/testLog.log
Jika Anda perlu melakukan perbandingan, mentransformasikan url menggunakan:
addcslashes($url, '/')
diizinkan untuk output yang tepat selama perbandingan saya.
sumber
Saya harus menghadapi situasi seperti itu, dan hanya, itu
tidak bekerja untuk saya.
sumber
Anda tidak perlu melarikan diri ke garis miring! HTML5 dan JS memungkinkan untuk menggunakan tanda kutip 'serta tanda kutip. Jadi di JSON I ketik:
Lihat situs web ev.bingo sebagai contoh kerja: "v4": ["Audi e-tron Q4 Sportback sepenuhnya menggunakan Platform Propulsi Listrik Modular MEPP, yang dibagikan di antara Grup Volkswagen"],
sumber