Analyse d'un fichier INI "avancé" avec PHP
En gros, je voudrais un simple, facile, un fichier de façon à analyser un fichier INI avec les fonctionnalités "avancées", comme l'article héritage et à la propriété de nidification, comme Zend_Config_Ini.
Par exemple:
[foo]
a = 1
b.a = 2
b.b = 3
b.c = 4
c = 5
[bar : foo]
b.b = 17
c = 42
Analysaient en
array(
'foo'=>array(
'a'=>'1',
'b'=>array(
'a'=>'2',
'b'=>'3',
'c'=>'4'
),
'c'=>'5'
),
'bar'=>array(
'a'=>'1',
'b'=>array(
'a'=>'2',
'b'=>'17',
'c'=>'4'
),
'c'=>'42'
)
)
PHP intégré dans parse_ini_file
ne s'occupe pas d'autre chose que de la simple INI avec les sections simples et simples touches.
Mon problème avec l'aide de Zend_Config_Ini
est que je dois inclure la quasi-totalité de la Zend_Config sous-paquetage, et est super gonflé et configurable.
Est-il un petit et simple disponibles de la bibliothèque pour analyser ce?
Si non, est-il un facile mise en œuvre, je ne vois pas?
Par les petites et simples, je veux dire quelque chose comme le sfYaml des fichiers INI.
À mon (très peu d'expérience) les yeux, je dois analyser une fois avec parse_ini_file
puis de revenir et de résoudre l'héritage, puis courir à travers chaque section et d'élargir les touches de façon récursive...
Mise à JOUR: Depuis ce qui semble être une question populaire, je tiens à noter que J'ai une classe simple mise en œuvre de ce sur GitHubn'hésitez pas à envoyer pull demandes, questions, etc.
source d'informationauteur Austin Hyde
Vous devez vous connecter pour publier un commentaire.
D'abord pour répondre à une chose, la propriété de nidification est disponible à partir de parse_ini_file(), définissez le deuxième paramètre à true.i.e parse_ini_file('test.ini', true); Qui va vous donner un tableau multidimensionnel je.e
Voici une petite fonction qui va analyser le tableau retourné par parse_ini_file() et de le transformer en catégories.
Il sera de retour ce:
De la dernière écriture gagne je.e
[bar2 : foo2 : bar : foo]
bar2 gagne avec ses paramètres dans son propre tableau
REMARQUE: les 3 autres tableaux SERONT là jusqu'à ce point.
Espère que ce était ce que vous cherchez.
J'ai écrit quelque chose comme cela et pour l'instant ça fonctionne ok pour moi:
Une autre option - c'est la paire, de construire et d'analyser.