Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah `json_decode()` PHP Mengembalikan NULL dengan JSON yang Nampak Sah?
PHP json_decode() Mengembalikan NULL Apabila Diberikan JSON yang Nampak Sah: Resolusi
Apabila cuba menyahkod objek JSON yang disimpan dalam teks biasa fail menggunakan fungsi json_decode() PHP, sesetengah pengguna telah menghadapi masalah di mana fungsi itu kembali NULL walaupun JSON kelihatan sah apabila diuji terhadap pengesah JSON.
Memeriksa coretan kod yang disediakan, objek JSON kelihatan berformat baik. Walau bagaimanapun, ada kemungkinan fail tersebut mengandungi aksara halimunan atau aksara bukan UTF-8 yang boleh mengganggu proses penyahkodan.
Untuk menyelesaikan isu ini, penyelesaian yang dicadangkan oleh pengguna melibatkan penggunaan fungsi preg_replace() PHP untuk alih keluar sebarang aksara bukan UTF-8 daripada rentetan JSON. Kod yang diubah suai akan kelihatan seperti ini:
$json_object = json_decode( preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), true );
Ungkapan biasa ini akan menggantikan mana-mana aksara di luar julat aksara UTF-8 dengan rentetan kosong, memastikan rentetan JSON hanya mengandungi aksara yang sah.
Dengan menggunakan pengubahsuaian ini, fungsi json_decode() PHP seharusnya berjaya menyahkod objek JSON dan mengembalikan objek atau tatasusunan PHP yang mewakili data JSON. Penyelesaian ini telah dilaporkan berfungsi dengan cekap untuk ramai pengguna yang menghadapi isu ini.
Atas ialah kandungan terperinci Mengapakah `json_decode()` PHP Mengembalikan NULL dengan JSON yang Nampak Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!