parse_ini_file
(PHP 4, PHP 5)
parse_ini_file — Parst eine Konfigurationsdatei
Beschreibung
$filename
[, bool $process_sections = false
[, int $scanner_mode = INI_SCANNER_NORMAL
]] )
parse_ini_file() lädt die in
filename angegebene Datei, und gibt
die darin enthaltenen Einstellungen in einem assoziativen
Array zurück.
Die Struktur der Ini-Datei ist identisch zur php.ini.
Parameter-Liste
-
filename -
Der Dateiname der zu ladenden ini-Datei.
-
process_sections -
Setzt man den Parameter
process_sectionsaufTRUE, erhält man ein mehrdimensionales Array mit den Gruppennamen und Einstellungen. Der Standardwert fürprocess_sectionsistFALSE -
scanner_mode -
Kann entweder
INI_SCANNER_NORMAL(Standard) oderINI_SCANNER_RAWsein. IstINI_SCANNER_RAWgesetzt, so werden die Werte der Optionen nicht geparst.
Rückgabewerte
Im Erfolgsfall werden die Einstellungen als assoziatives Array
zurückgegeben, ansonsten FALSE.
Changelog
| Version | Beschreibung |
|---|---|
| 5.3.0 |
Der optionale Parameter scanner_mode wurde
hinzugefügt.
Einfache Anführungszeichen können nun um Variablenzuordnungen herum
verwendet werden.
Rautezeichen (# können nicht länger für Kommentare
verwendet werden und bei Verwendung wird eine Warnung zur veralteten
Benutzung ausgegeben.
|
| 5.2.7 |
Bei einem Syntaxfehler gibt die Funktion nun FALSE statt eines leeren
Array zurück.
|
| 5.2.4 | Schlüssel und Gruppennamen mit Ziffern werden nun als Integer von PHP ausgewertet, weshalb Zahlen, die mit einer 0 beginnen, als Oktalzahlen und Zahlen, die mit 0x beginnen, als Hexadezimalzahlen verstanden werden. |
| 5.0.0 | In doppelten Anführungszeichen eingeschlossene Werte können nun Zeilenumbrüche enthalten. |
| 4.2.1 | Die Funktion wird nun durch die Einstellungen Safe Mode und open_basedir beeinflusst. |
Beispiele
Beispiel #1 Inhalt der sample.ini
; Dies ist ein Beispiel für eine Konfigurationsdatei ; Kommentare beginnen wie in der php.ini mit ';' [erste_gruppe] eins = 1 fünf = 5 tier = VOGEL [zweite_gruppe] pfad = /usr/local/bin URL = "http://www.example.com/~username" [dritte_gruppe] phpversion[] = "5.0" phpversion[] = "5.1" phpversion[] = "5.2" phpversion[] = "5.3" urls[svn] = "http://svn.php.net" urls[git] = "http://git.php.net"
Beispiel #2 parse_ini_file()-Beispiel
Konstanten in einer Ini-Datei können ebenfalls geparst werden indem man eine Konstante als INI-Wert definiert, bevor parse_ini_file() aufgerufen wird. Dieser Wert wird in die Ergebnisse integriert, dabei werden nur INI-Werte ausgewertet. Zum Beispiel:
<?php
define ('VOGEL', 'Amsel');
// Ohne Gruppen analysieren
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);
// Mit Gruppen analysieren
$ini_array = parse_ini_file("sample.ini", TRUE);
print_r($ini_array);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Array
(
[eins] => 1
[fünf] => 5
[tier] => Amsel
[pfad] => /usr/local/bin
[URL] => http://www.example.com/~username
[phpversion] => Array
(
[0] => 5.0
[1] => 5.1
[2] => 5.2
[3] => 5.3
)
[urls] => Array
(
[svn] => http://svn.php.net
[git] => http://git.php.net
)
)
Array
(
[erste_gruppe] => Array
(
[eins] => 1
[fünf] => 5
[tier] => Amsel
)
[zweite_gruppe] => Array
(
[pfad] => /usr/local/bin
[URL] => http://www.example.com/~username
)
[dritte_gruppe] => Array
(
[phpversion] => Array
(
[0] => 5.0
[1] => 5.1
[2] => 5.2
[3] => 5.3
)
[urls] => Array
(
[svn] => http://svn.php.net
[git] => http://git.php.net
)
)
)
Beispiel #3 parse_ini_file() parst eine php.ini
<?php
// Eine einfache Funktion, um das Ergebnis zu vergleichen
function janein($expression)
{
return($expression ? 'Ja' : 'Nein');
}
// Pfad der php.ini mittels der Funktion php_ini_loaded_file()
// holen, die seit PHP 5.2.4 verfügbar ist
$ini_path = php_ini_loaded_file();
// Parsen der php.ini
$ini = parse_ini_file($ini_path);
// Werte ausgeben und vergleichen. Beachten Sie dass die Verwendung von
// get_cfg_var() die gleichen Ergebnisse für geparste und geladene
// Werte geben wird
echo '(geparst) magic_quotes_gpc = ' . janein($ini['magic_quotes_gpc']) . PHP_EOL;
echo '(geladen) magic_quotes_gpc = ' . janein(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
(geparst) magic_quotes_gpc = Ja
(geladen) magic_quotes_gpc = Nein
Anmerkungen
Hinweis:
Diese Funktion hat nichts mit dem Laden der php.ini-Datei zu tun. Diese ist zum Ausführungszeitpunkt Ihres Skriptes bereits vollständig verarbeitet. Diese Funktion kann verwendet werden, um die Konfigurationsdateien Ihrer eigenen Anwendung zu lesen.
Hinweis:
Falls ein Wert der Ini-Datei ein nicht alphanumerisches Zeichen enthält muss dieser Wert in doppelte Anführungszeichen (") eingeschlossen werden.
Hinweis: Es gibt reservierte Schlüsselwörter, welche nicht als Schlüssel in Ini-Dateien verwendet werden dürfen. Diese umfassen: null, yes, no, true, false, on, off, none. Die Werte null, off, no und false ergeben "". Die Werte on, yes and true ergeben "1". Die Zeichen ?{}|&~!()^" dürfen in einem Schlüssel nicht verwendet werden und haben im Wert besondere Bedeutung.
Hinweis:
Einträge ohne Gleichheitszeichen werden ignoriert. Beispielsweise würde "foo" ignoriert werden, während "bar =" geparst und mit einem leeren Wert hinzugefügt würde. Beispielsweise hat MySQL eine Einstellung "no-auto-rehash" in der my.cnf welche keinen Wert enthält und somit ignoriert würde.