parse_ini_file
(PHP 4, PHP 5, PHP 7)
parse_ini_file — Parst eine Konfigurationsdatei
Beschreibung
$filename
[, bool $process_sections
= FALSE
[, int $scanner_mode
= INI_SCANNER_NORMAL
]] ) : array
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_sections
aufTRUE
, erhält man ein mehrdimensionales Array mit den Gruppennamen und Einstellungen. Der Standardwert fürprocess_sections
istFALSE
-
scanner_mode
-
Kann entweder
INI_SCANNER_NORMAL
(Standard) oderINI_SCANNER_RAW
sein. IstINI_SCANNER_RAW
gesetzt, so werden die Werte der Optionen nicht geparst.Seit PHP 5.6.1 kann auch
INI_SCANNER_TYPED
angegeben werden. In diesem Modus werden soweit möglich die Typen von Boolean-, Null- oder Integer-Werten beibehalten. Die Zeichenketten "true", "on" und "yes" werden zuTRUE
konvertiert. "false", "off", "no" und "none" werden alsFALSE
angesehen. "null" wird in diesem Modus zuNULL
. Soweit möglich werden alle numerischen Zeichenketten zu Integertypen umgewandelt.
Rückgabewerte
Im Erfolgsfall werden die Einstellungen als assoziatives Array
zurückgegeben, ansonsten FALSE
.
Changelog
Version | Beschreibung |
---|---|
7.0.0 | Das Raute-Symbol (#) kann nicht mehr für Kommentare verwendet werden. |
5.6.1 |
Neuen Modus INI_SCANNER_TYPED hinzugefügt.
|
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. |
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 "" und die Werte on, yes and true ergeben "1", solange der Modus
INI_SCANNER_TYPED
nicht verwendet wird (seit PHP 5.6.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.
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-parse-ini-file.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.