Rumah  >  Soal Jawab  >  teks badan

Tidak dapat menggemakan atau menghuraikan rentetan JSON yang panjang

Saya sedang memproses fail data JSON yang besar (25 mb) dalam PHP.

Kini saya boleh mendapatkan fail dan menyemak panjang rentetannya, walaupun saya tidak dapat echo mengeluarkan rentetan, saya mendapat 24479798.

di echo strlen() 之后,脚本的其余部分崩溃了,我没有得到进一步的输出,包括 echo "Made it to the Bottom";

Mengapa saya tidak boleh json_decode bekerja? Adakah ini isu memori skrip atau isu pengekodan aksara dalam data JSON? saya buntu.

<?php

error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);   

if($result = file_get_contents("test.json")){
    echo "GOT IT";
}else{
    echo "NO";
}

// This works

echo "Got to here";

// This works

echo strlen($result);

// I get "24479798", which is the file string length

var_dump($diffbotResult);

// Outputs all the JSON data, so I know I have it and it's proper JSON data

$result = json_decode($result, true);

echo json_last_error_msg();

// No output

print_r($result);

// No output

echo "Made it to the bottom";

// Does not echo out anything

?>

P粉116631591P粉116631591179 hari yang lalu361

membalas semua(1)saya akan balas

  • P粉043295337

    P粉0432953372024-03-29 00:03:17

    Memandangkan anda cuba mengimport fail yang besar, skrip mengambil masa lebih lama untuk dijalankan daripada yang diperlukan oleh penyemak imbas/pelayan dan akan tamat masa sebelum selesai. Skrip seperti ini perlu dijalankan dari baris arahan atau melalui cron untuk menghapuskan tamat masa. Anda juga boleh meningkatkan memori dengan menambah ini_set('memory_limit', '512M'); (atau nilai yang lebih tinggi jika perlu) pada permulaan skrip untuk memastikan ia mempunyai memori yang mencukupi untuk memuatkan dan memproses fail json.

    balas
    0
  • Batalbalas