PEAR-Forum.de Übersicht Thema anzeigen - ini file parsen und key value paare auslesen

ini file parsen und key value paare auslesen


 

PEAR-Forum.de Übersicht » Configuration
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Neon03
Neuer User


Anmeldungsdatum: 23.01.2007
Beiträge: 9

Beitrag23.01.2007 15:19    ini file parsen und key value paare auslesen Antworten mit Zitat

Hallo ich habe folgendes Problem:

also ich hab eine ini File das Folgendermasen aussieht

Code:

;############################ Admin Client ##########################
[vdbAdmin]
; comma separated list of stylesheet files
css = admin.css
; comma separated list of javascript files
;javascript =

; the template file name
template = admin/admin.tpl

; Admin-Procedure directory and -prefix
procDir = admin
procPrefix = proc

; menu entries
menu = Configurator


nun parse ich diese mit
PHP:
<?php
parseConfig
($configpath'IniCommented');


mein Problem ist die werte auszulesen.
mir waere es am liebsten wenn ich das file bzw. das geparste file als array haette, welches ich dann einfach mit einer foreach schleife durchgehe.

also mein problem: wie bekomme ich die key value werte aus der ini und wie kann nich diese aendern (values)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kaiuwe
User


Anmeldungsdatum: 02.06.2006
Beiträge: 188

Beitrag23.01.2007 16:18     Antworten mit Zitat

Und was gefällt dir nicht an "toArray"?
http://pear.php.net/manual/de/package.configuration.config.config-container.toarray.php


Hier ein kompletts Beispiel:
http://cvs.php.net/viewcvs.cgi/pear/Config/docs/IniFromScratch.php?revision=1.2&view=markup
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Neon03
Neuer User


Anmeldungsdatum: 23.01.2007
Beiträge: 9

Beitrag23.01.2007 18:11    aw Antworten mit Zitat

ok danke

aber ich will ja die werte aus der datei auslesen -> jedoch weis ich nicht wie ich dann z.b. ein key aendern kann,

ich schreibe mir zuvor selbst kein array wo daten drin sind es geschieht alles dynamisch config parsen die key value paare anzeigen die in der ini waren, diese aendern und dann ok klicken und dann werden die jeweiligen values von der ini gaendert (neu geschrieben)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berdir
Power User


Anmeldungsdatum: 22.09.2005
Beiträge: 1347

Beitrag23.01.2007 18:31     Antworten mit Zitat

Und genau das kannst du ja auch damit machen, nur geht das nicht "automatisch".

parseConfig aus ini -> toArray -> Verändern -> parseConfig aus phparray -> writeConfig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden PEAR-User
Neon03
Neuer User


Anmeldungsdatum: 23.01.2007
Beiträge: 9

Beitrag24.01.2007 8:57    aw Antworten mit Zitat

ok ich versuchs gleich mal schon einmal vielen vielen dank
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Neon03
Neuer User


Anmeldungsdatum: 23.01.2007
Beiträge: 9

Beitrag24.01.2007 11:09    aw Antworten mit Zitat

also ich hattes es jetzt mal ausprobiert

PHP:
<?php
$configpath 
"./../../conf/vdb.ini.backup";
    
$phpIni = new Config();
    
$root $phpIni->parseConfig($configpath'IniCommented');
    
$rootarray $root->toArray($root);
            
    
$newconfig = new Config();
    
$test $newconfig->parseConfig($rootarray'phparray');
    
$newconfig->writeConfig('/tmp/testfile.ini''IniCommented');


wenn ich das so mache kommt jedoch das heraus

PHP:
<?php
[root]
[
vdbAdmin]
css=admin.css
template
=admin/admin.tpl
procDir
=admin
procPrefix
=proc
logfile
=tmp/admin.log
[menu]
0=Configurator
1
=Privileges
2
=Users
3
=Functions
4
=DBTables
5
=Configurator
6
=Translation
7
=Stylesheets
8
=Scheduling
9
=Log
10
=Function
username=admin
password
=nimda
[PHPUnit]
language=5


eigentlich sollte es so aussehen

PHP:
<?php
;############################ Admin Client ##########################
[vdbAdmin]
comma separated list of stylesheet files
css 
admin.css
comma separated list of javascript files
;javascript =
the template file name
template 
admin/admin.tpl
prefix for Module placeholders
;templateModulePrefix tplm
Admin-Procedure directory and -prefix
procDir 
admin
procPrefix 
proc
the logfile name
logfile 
tmp/admin.log
menu entries
menu 
ConfiguratorPrivilegesUsersFunctionsDBTablesConfiguratorTranslationStylesheetsScheduling
admin username and password used in procFunction
username 
admin
password 
nimda


also es fehlen die kommentare und bei mehreren eintraegen hintereinander mit leerzeichen macht er mir immer nur [menu]
0=Configurator
1=Privileges
2=Users
3=Functions
4=DBTables

anstatt menu = Configurator Privileges Users Functions DBTabels
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berdir
Power User


Anmeldungsdatum: 22.09.2005
Beiträge: 1347

Beitrag24.01.2007 11:18     Antworten mit Zitat

Das die Kommentare wegfallen ist logisch, wie willst du die denn in einem PHP Array abbilden?

Wie sehen denn die Daten als Array aus?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden PEAR-User
Kaiuwe
User


Anmeldungsdatum: 02.06.2006
Beiträge: 188

Beitrag24.01.2007 11:27     Antworten mit Zitat

Ist ein ganz normales Verhalten von "Config":

http://pear.php.net/manual/en/package.configuration.config.avail-container.php#AEN21136 (siehe PHPArray)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Neon03
Neuer User


Anmeldungsdatum: 23.01.2007
Beiträge: 9

Beitrag24.01.2007 12:53    aw Antworten mit Zitat

hm das is bloede das die kommentare wegfallen, da ich diese umbedingt bracuhe aber egal,

also das phparray sieht folgendermasssen aus:

PHP:
<?php
Array
(
    [
root] => Array
        (
            [
vdbAdmin] => Array
                (
                    [
css] => admin.css
                    
[template] => admin/admin.tpl
                    
[procDir] => admin
                    
[procPrefix] => proc
                    
[logfile] => tmp/admin.log
                    
[menu] => Array
                        (
                            [
0] => Configurator
                            
[1] => Privileges
                            
[2] => Users
                            
[3] => Functions
                            
[4] => DBTables
                            
[5] => Configurator
                            
[6] => Translation
                            
[7] => Stylesheets
                            
[8] => Scheduling
                            
[9] => Log
                            
[10] => Function
                        )

                    [
username] => admin
                    
[password] => nimda
                
)

            [
PHPUnit] => Array
                (
                    [
language] => 5
                
)

            [
Session] => Array
                (
                    [
session_expires] => 36000
                    
[session_idle] => 36000
                    
[authServices] => DB
                
)


na da komm ich wohl nicht drum rum nen eigenen parser zu schreiben aber trotzdem schon mal ein grosses lob an euch und vielen dank Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Diese Seite übersetzen
PEAR-Forum.de Übersicht » Configuration
Neues Thema eröffnen Neue Antwort erstellen Diesen Beitrag ausdrucken
   Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Zu Deinen Favoriten hinzufügen

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen