찾다

 >  Q&A  >  본문

긴 JSON 문자열을 에코하거나 구문 분석할 수 없습니다.

PHP에서 대용량 JSON 데이터 파일(25MB)을 처리 중입니다.

이제 파일을 가져와 문자열 길이를 확인할 수 있지만 echo 문자열을 출력할 수는 없지만 24479798을 얻습니다.

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

json_decode회사에 갈 수 없나요? 이것은 스크립트 메모리 문제입니까, 아니면 JSON 데이터의 문자 인코딩 문제입니까? 나는 붙어있다.

<?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粉116631591244일 전441

모든 응답(1)나는 대답할 것이다

  • P粉043295337

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

    대용량 파일을 가져오려는 것을 고려하면 브라우저/서버에 필요한 것보다 스크립트를 실행하는 데 시간이 더 걸리고 완료되기 전에 시간 초과됩니다. 이와 같은 스크립트는 시간 초과를 없애기 위해 명령줄이나 cron을 통해 실행해야 합니다. json 파일을 로드하고 처리하는 데 충분한 메모리가 있는지 확인하기 위해 스크립트 시작 부분에 ini_set('memory_limit', '512M');(또는 필요한 경우 더 높은 값)을 추가하여 메모리를 늘릴 수도 있습니다.

    회신하다
    0
  • 취소회신하다