Traitement de gros fichiers JSON en PHP
Lors du traitement de fichiers JSON qui dépassent les limites de mémoire, il devient crucial de concevoir des stratégies qui minimisent l'utilisation de la mémoire pendant l'analyse et le traitement. Cette discussion explore des méthodes efficaces pour gérer des fichiers JSON volumineux sans charger l'intégralité du contenu en mémoire.
Approche d'analyse par traction
Abandonnant l'approche typique "slurp et analyse", PHP propose désormais une solution prometteuse : un analyseur pull JSON en streaming appelé JsonReader. Inspiré de l'API de XMLReader, JsonReader permet aux utilisateurs de contrôler le processus d'analyse et de récupérer des données à la demande.
Exemple 1 : Lire des objets dans leur ensemble
use pcrov\JsonReader\JsonReader; $reader = new JsonReader(); $reader->open("data.json"); $reader->read(); // Outer array $depth = $reader->depth(); // Track depth to detect when the array ends $reader->read(); // Move to the first object while ($reader->next() && $reader->depth() > $depth) { print_r($reader->value()); // Process each object } $reader->close();
Exemple 2 : Lecture Individuelle Éléments
while ($reader->read()) { if ($reader->name() !== null) { echo "$name: {$reader->value()}\n"; } }
Exemple 3 : Lecture des doublons et des propriétés spécifiques
$reader = new pcrov\JsonReader\JsonReader(); $reader->json($json); while ($reader->read("foo")) { echo "{$reader->name()}: {$reader->value()}\n"; }
En utilisant les capacités d'analyse pull-parsing de JsonReader, les développeurs PHP peuvent traiter efficacement de grandes Fichiers JSON, évitant l'épuisement de la mémoire et maximisant les performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!