parse_ini_file Parst eine Konfigurationsdatei &reftitle.description; arrayfalseparse_ini_file stringfilename boolprocess_sections&false; intscanner_modeINI_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;. &reftitle.parameters; filename Der Dateiname der zu parsenden ini-Datei. Wenn ein relativer Pfad verwendet wird, wird er relativ zum aktuellen Arbeitsverzeichnis ausgewertet und dann entsprechend dem include_path. process_sections Setzt man den Parameter process_sections auf &true;, erhält man ein mehrdimensionales Array mit den Gruppennamen und Einstellungen. Der Standardwert für process_sections ist &false; scanner_mode Kann entweder INI_SCANNER_NORMAL (Standard) oder INI_SCANNER_RAW sein. Ist INI_SCANNER_RAW gesetzt, so werden die Werte der Optionen nicht geparst. &ini.scanner.typed; &reftitle.returnvalues; Im Erfolgsfall werden die Einstellungen als assoziatives Array zurückgegeben, ansonsten &false;. &reftitle.examples; Inhalt der <filename>sample.ini</filename> <function>parse_ini_file</function>-Beispiel Abgesehen von "magischen Konstanten" wie __FILE__ können auch Konstanten in einer Ini-Datei geparst werden, indem man einen INI-Wert als Konstante definiert, bevor parse_ini_file aufgerufen wird. Diese Konstante wird in die Ergebnisse integriert. Dabei werden nur INI-Werte ausgewertet und der Wert muss genau die Konstante sein. Zum Beispiel: ]]> &example.outputs.similar; 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 ) ) ) ]]> <function>parse_ini_file</function> parst eine php.ini ]]> &example.outputs.similar; Wert-Interpolation Neben der Auswertung von Konstanten haben bestimmte Zeichen eine besondere Bedeutung in einem ini-Wert. Darüber hinaus können Umgebungsvariablen und zuvor definierte Konfigurationsoptionen (siehe get_cfg_var) mit der ${}-Syntax gelesen werden. Zeichen maskieren Einige Zeichen haben in Zeichenketten in doppelten Anführungszeichen eine besondere Bedeutung und müssen durch das Backslash-Präfix maskiert werden. Dies sind vor allem das doppelte Anführungszeichen " als Begrenzungszeichen und der Backslash \ selbst (wenn darauf ein Sonderzeichen folgt): Es gibt eine Ausnahme für Windows-ähnliche Pfade: Es ist möglich, den abschließenden Backslash nicht zu maskieren, wenn auf die Zeichenkette in Anführungsstrichen direkt ein Zeilenumbruch folgt: Wenn man doppelte Anführungszeichen gefolgt von einem Zeilenumbruch in einem mehrzeiligen Wert vermeiden muss, ist es möglich, die Verkettung von Werten auf folgende Weise zu verwenden (eine Zeichenkette mit zwei direkt aufeinanderfolgenden Anführungszeichen): Ein weiteres Zeichen mit besonderer Bedeutung ist $ (das Dollarzeichen). Wenn darauf eine öffnende geschweifte Klammer folgt, muss es maskiert werden: Das Maskieren von Zeichen wird im Modus INI_SCANNER_RAW nicht unterstützt (in diesem Modus werden alle Zeichen verarbeitet wie sie sind). Zu beachten ist, dass der ini-Parser keine Standard-Maskierungssequenzen unterstützt (\n, \t etc.). Falls erforderlich, muss das Ergebnis von parse_ini_file mit der Funktion stripcslashes nachbearbeitet werden. &reftitle.notes; 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. Falls ein Wert der Ini-Datei ein nicht alphanumerisches Zeichen enthält muss dieser Wert in doppelte Anführungszeichen (") eingeschlossen werden. 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 . Die Zeichen ?{}|&~!()^" dürfen in einem Schlüssel nicht verwendet werden und haben im Wert besondere Bedeutung. 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. Ini-Dateien werden von Webservern in der Regel als reiner Text behandelt und daher den Browsern auf Anfrage zur Verfügung gestellt. Das bedeutet, dass Sie aus Sicherheitsgründen entweder Ihre ini-Dateien außerhalb des Web-Wurzelverzeichnisses (DocRoot) aufbewahren müssen oder Ihren Webserver so umkonfigurieren, dass sie nicht ausgeliefert werden. Wenn Sie beides nicht tun, kann dies ein Sicherheitsrisiko darstellen. &reftitle.seealso; parse_ini_string