2016-04-30 7 views
0

Es ist ein einfaches PHP-Skript ohne irgendein Framework. Ich bekomme eine sehr große (15MB, ich habe keine andere Wahl, als damit umgehen) lokale JSON-Datei und benutze sie für verschiedene Operationen.Bewährte Methode, um wiederholt eine lokale JSON-Datei in einem No-Framework-PHP-Code zu verwenden

Im Moment benutze ich das global Schlüsselwort, um es von Funktionen zu nennen, aber es fühlt sich nicht sehr gut an. Ich frage mich auch über Aufführungen. Gibt es einen einfacheren Weg für diese Art von Zweck?

$data = json_decode(file_get_contents("data.json"), true); 

function randomItem() { 
    global $data; 
    return array_rand($data); 
} 

$item = randomItem(); 
var_dump($data[$item]); 

Antwort

1

können Sie schreiben, es mag:

class JsonLoader{ 
    private $data; 
    private $arrayEncoding; 
    public function load($file,$arrayEncoding = true){ 
     if(file_exists($file) == false){ 
      return false; 
     } 
     $this->arrayEncoding = $arrayEncoding; 
     $this->data = json_decode(file_get_contents($file),$arrayEncoding); 
     if($this->data == null){ 
      return false; 
     } 
     return true; 
    } 
    public function getData(){ 
     return $this->data; 
    } 
    public function getRandomData(){ 
     return (is_array($this->data) ? array_rand($this->data) : array_rand((array)$this->data)); 
    } 
} 

Und verwenden Sie es mögen:

$json = new JsonLoader; 

if($json->load("data.json") == false){ 
    //Show Error 
} 

$random = $json->getRandomData(); 
Verwandte Themen