Sponsor-Board.de

Normale Version: PHP Config Datei
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bin gerade dabei, mein Wissen in PHP zu erweitern, und bin gerade an einem Thema angekommen wo ich nicht weiter weiß. Und zwar, wenn man zB. Wordpress oder andere Webanwendungen installiert, muss man da meistens unter anderem die SQL Daten eingeben. Diese werden dann in einer Datei gespeichert, und das ist es, was ich gerade lernen will. Eine Datei zu erstellen, und da ein paar Werte einspeichern ist kein Problem für mich, allerdings weiß ich nicht, wie ich es machen soll, wenn man später irgendwann nur einen, oder nur ein paar Werte ändern möchte. Ich habs bis jetzt mit einer .ini Datei versucht, da es dafür die nette parse_ini_file() Funktion gibt, mit der man alle Werte bequem auslesen kann. Jetzt kommt meine Frage, und zwar ob es eine Funktion gibt, mit der man einen Wert in der beispiel.ini Datei ändern kann, und falls nicht, wie man es sonst machen kann.

Ich hoffe dass ihr mir helfen könnt.
LG, David

PS: Bevor mir jemand einen igtfy Link schickt, möchte ich erwähnen dass ich schon gegoogelt hab, und ich größtenteils nur Infos gefunden hab wie man die php.ini Datei ändern kann.
wie wärs mit stinkeinfachen fopen und fwrite befehlen?
würde das ganze mit JSON machen :

[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]

[Link: Registrierung erforderlich]
JSON ist was ganz anderes, hat mit Config-Dateien garnichts zutun.

Ich hätte es über ini wie du bereits sagtest gemacht, oder als alternative ist auch YAML zu emfehlen. Ansonsten kannst du auch Einstellungen welche du immer mal wieder ändern musst also DRINGEND im Adminpanel ändern kannst über die Datenbank regeln.

Zitat:
JSON ist was ganz anderes, hat mit Config-Dateien garnichts zutun.


Zitat:
oder als alternative ist auch YAML zu emfehlen


Willst du mich verarschen BiggrinD? Und außerdem ist der YAML parser viel langsamer als der JSON

ich persönlich würde es über eine klasse machen mit statischen methoden und eine Methode noch mit [Link: Registrierung erforderlich] knüpfen um die einstellungen in der Datei zu speichern

Ich würde es ebenfalls mit einem einfachem Dateizugriff via fopen und fwrite versuchen und dann die jeweiligen Daten in eine php config Datei speichern.
Später kann man dann die Daten wieder relativ leicht verändern.

MfG
Wenn du eine *.ini in ein Array stecken kannst, dann kannst du das Array natürlich auch in eine *.ini stecken.

PHP-Code:
function write_ini_file($assoc_arr$path$has_sections=FALSE) { 
    
$content ""
    if (
$has_sections) { 
        foreach (
$assoc_arr as $key=>$elem) { 
            
$content .= "[".$key."]\n"
            foreach (
$elem as $key2=>$elem2) { 
                if(
is_array($elem2)) 
                { 
                    for(
$i=0;$i<count($elem2);$i++) 
                    { 
                        
$content .= $key2."[] = \"".$elem2[$i]."\"\n"
                    } 
                } 
                else if(
$elem2==""$content .= $key2." = \n"
                else 
$content .= $key2." = \"".$elem2."\"\n"
            } 
        } 
    } 
    else { 
        foreach (
$assoc_arr as $key=>$elem) { 
            if(
is_array($elem)) 
            { 
                for(
$i=0;$i<count($elem);$i++) 
                { 
                    
$content .= $key2."[] = \"".$elem[$i]."\"\n"
                } 
            } 
            else if(
$elem==""$content .= $key2." = \n"
            else 
$content .= $key2." = \"".$elem."\"\n"
        } 
    } 

    if (!
$handle fopen($path'w')) { 
        return 
false
    } 
    if (!
fwrite($handle$content)) { 
        return 
false
    } 
    
fclose($handle); 
    return 
true


Benutzt wird es wie folgt:

PHP-Code:
$sampleData = array(
                
'first' => array(
                    
'first-1' => 1,
                    
'first-2' => 2,
                    
'first-3' => 3,
                    
'first-4' => 4,
                    
'first-5' => 5,
                ),
                
'second' => array(
                    
'second-1' => 1,
                    
'second-2' => 2,
                    
'second-3' => 3,
                    
'second-4' => 4,
                    
'second-5' => 5,
                ));
write_ini_file($sampleData'./data.ini'true); 


Alternativ einfach hier mal weiter lesen, gibt es viele inoffizielle Funktionen:
[Link: Registrierung erforderlich]

Referenz-URLs