parse_ini_file în PHP

Citește un fișier de configurare .ini și îl transformă într-un tablou.

Sintaxă
parse_ini_file(string $filename, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false

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 .ini cu 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, off devine 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.