Ce face parse_ini_file
Fișierele .ini au rânduri de forma cheie = valoare, grupate opțional în secțiuni [nume]. Sunt ușor de editat de mână, de aceea sunt folosite pentru setări precum datele de conectare la baza de date.
Implicit, toate valorile devin text, iar on, yes, true devin "1", în timp ce off, no, false, none devin "". Cu INI_SCANNER_TYPED primești tipuri reale: numere, true, false. Pentru configurare care vine din text, există parse_ini_string.
Parametri
| Parametru | Descriere |
|---|---|
$filename |
Calea fișierului .ini. |
$process_sections |
Opțional. true grupează cheile pe secțiuni, într-un tablou cu mai multe niveluri. |
$scanner_mode |
Opțional. INI_SCANNER_NORMAL, INI_SCANNER_RAW (fără conversii) sau INI_SCANNER_TYPED. |
Ce returnează
Un tablou cu setările sau false dacă fișierul nu poate fi citit sau are erori.
Exemple
Exemplul 1: Setări simple
<?php
file_put_contents("config.ini", "site = \"Magazinul Anei\"\ndebug = off\nproduse_pe_pagina = 20\n");
var_dump(parse_ini_file("config.ini"));
Rezultat
array(3) {
["site"]=>
string(14) "Magazinul Anei"
["debug"]=>
string(0) ""
["produse_pe_pagina"]=>
string(2) "20"
}
Exemplul 2: Secțiuni și tipuri reale
<?php
file_put_contents("config.ini", "[baza]\nhost = localhost\nport = 3306\n\n[email]\nactiv = yes\nexpeditor = contact@exemplu.ro\n");
$config = parse_ini_file("config.ini", true, INI_SCANNER_TYPED);
var_dump($config["baza"]["port"]);
var_dump($config["email"]["activ"]);
echo $config["email"]["expeditor"];
Rezultat
int(3306)
bool(true)
contact@exemplu.ro
Greșeli frecvente
- Pui fișierul
.inicu parole în directorul public al site-ului. Oricine îl poate descărca din browser. Ține-l în afara directorului public. - Scrii o valoare cu caractere speciale (
!,(,=,"etc.) fără ghilimele. Fișierul nu mai poate fi citit și funcția returneazăfalse. Pune valorile de acest fel între ghilimele. - Verifici
if ($config["debug"] === "off"). În modul implicit,offdevine text gol, nu"off".
Comenzi înrudite
ini_set / ini_get: Schimbă o setare din php.ini doar pentru scriptul curent (ini_set) sau îi citește valoarea (ini_get).getenv / putenv: Citește o variabilă de mediu (getenv) sau setează una pentru procesul curent (putenv).json_decode: Transformă un text JSON în tablou sau obiect PHP.file_get_contents: Citește tot conținutul unui fișier (sau al unei adrese URL) într-un text.