ho il seguente codice:memoria per json_parse con PHP
<?php
$FILE="giant-data-barf.txt";
$fp = fopen($FILE,'r');
//read everything into data
$data = fread($fp, filesize($FILE));
fclose($fp);
$data_arr = json_decode($data);
var_dump($data_arr);
?>
Il file gigante-dati-barf.txt è, come suggerisce il nome, un file enorme (è 5.4MB in questo momento, ma potrebbe andare fino a diversi GB)
Quando eseguo questo script, ottengo il seguente errore:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in ........./data.php on line 12
ho guardato le possibili soluzioni, e ho visto questo:
ini_set('memory_limit','16M');
e la mia domanda è, c'è un limite a quanto grande dovrei impostare la mia memoria? O c'è un modo migliore per risolvere questo problema?
Questo potrebbe non essere un lavoro per cui PHP è perfettamente adatto. Puoi usare gli strumenti da riga di comando? –
Archiviazione file flat di un file di quelle dimensioni causerà molti problemi. Usa sqlite o mysql. se il file contiene solo una variabile che è stata codificata con json ed è così enorme, è improbabile che tu possa risolverlo. json non è pensato per file così grandi. Utilizzare un database, o memorizzarlo in CSV, o memorizzare ogni riga in json invece dell'intera cosa – Jason
L'unico problema è che qualcuno mi sta esportando l'intero DB in formato JSON ... –