2017-03-05 1 views
0

J'ai un flux de données JSON, je veux l'analyser et que vous voulez enregistrer le résultat dans le fichier ini:Comment enregistrer JSON dans un fichier ini avec php?

{ 
    "books": [{ 
     "id": "1", 
     "date": "2017-03-12", 
     "date_text": "sunday 12 march", 
     "title": "title text" 
    }, { 
     "id": "2", 
     "date": "2017-03-12", 
     "date_text": "sunday 12 march", 
     "title": "title text" 
    }] 
} 

C'est mes données d'échantillon et je voudrais savoir s'il y a un moyen de le sauver dans un fichier, peu importe s'il contient 1 ou plus "id: s" (Items) Je sais comment analyser le JSON mais pas comment l'enregistrer dans un fichier au format correct pour un ini.

Format Préférable:

[Books 0] 
id= 1 
date= 2017-03-12 
date_text=sunday 12 march 
title= title text 

[Books 1] 
id"=2 
date=2017-03-12 
date_text=sunday 12 march 
title=title text 
+0

qu'avez-vous essayé? – hassan

+0

Peut-être que cela pourrait aider: [tableau PHP à un fichier .ini] (http://stackoverflow.com/questions/17316873/php-array-to-a-ini-file/17317168#17317168) – JazZ

Répondre

0

Vous pouvez Zend Config pour cette tâche. Ouvrez votre terminal et ajouter zend-config à votre projet en tant que dépendance (en supposant que vous utilisez déjà composer):

composer require zendframework/zend-config 

Maintenant, vous pouvez essayer de suivre,

$json = <<<JSON 
{ 
    "books": [{ 
     "id": "1", 
     "date": "2017-03-12", 
     "date_text": "sunday 12 march", 
     "title": "title text" 
    }, { 
     "id": "2", 
     "date": "2017-03-12", 
     "date_text": "sunday 12 march", 
     "title": "title text" 
    }] 
} 
JSON; 

$config = new \Zend\Config\Config(json_decode($json, true), true); 
$writer = new \Zend\Config\Writer\Ini(); 
echo $writer->toString($config); 

La sortie sera:

[books] 
0.id = "1" 
0.date = "2017-03-12" 
0.date_text = "sunday 12 march" 
0.title = "title text" 
1.id = "2" 
1.date = "2017-03-12" 
1.date_text = "sunday 12 march" 
1.title = "title text" 

Votre format JSON devrait ressembler à ci-dessous pour produire la sortie désirée que vous avez écrite en question:

{ 
    "books 0": { 
     "id": "1", 
     "date": "2017-03-12", 
     "date_text": "sunday 12 march", 
     "title": "title text" 
    }, 
    "books 1" : { 
     "id": "2", 
     "date": "2017-03-12", 
     "date_text": "sunday 12 march", 
     "title": "title text" 
    } 
} 
+0

Essayer d'obtenir Zend ajouté projeter. est-il un moyen de savoir si son ajouté/travail autre que phpinfo()? – Kr4k4n