Maison  >  Questions et réponses  >  le corps du texte

Impossible de faire écho ou d'analyser de longues chaînes JSON

Je traite un gros fichier de données JSON (25 Mo) en PHP.

Maintenant, je peux récupérer le fichier et vérifier la longueur de sa chaîne, même si je ne peux pas echo afficher la chaîne, j'obtiens 24479798.

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

Pourquoi ne puis-je pas amener json_decode au travail ? S'agit-il d'un problème de mémoire de script ou d'un problème d'encodage de caractères dans les données JSON ? Je suis coincé.

<?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 Il y a quelques jours368

répondre à tous(1)je répondrai

  • P粉043295337

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

    Étant donné que vous essayez d'importer un fichier volumineux, le script prend plus de temps à s'exécuter que ce dont le navigateur/serveur a besoin et expirera avant de se terminer. Des scripts comme celui-ci doivent être exécutés à partir de la ligne de commande ou via cron pour éliminer les délais d'attente. Vous pouvez également augmenter la mémoire en ajoutant ini_set('memory_limit', '512M'); (ou une valeur plus élevée si nécessaire) au début du script pour vous assurer qu'il dispose de suffisamment de mémoire pour charger et traiter le fichier json.

    répondre
    0
  • Annulerrépondre