ini_set / ini_get în PHP

Schimbă o setare din php.ini doar pentru scriptul curent (ini_set) sau îi citește valoarea (ini_get).

Sintaxă
ini_set(string $option, string|int|float|bool|null $value): string|false

Ce face ini_set / ini_get

ini_set modifică o setare de configurare PHP pe durata scriptului care rulează. Fișierul php.ini nu se schimbă, iar alte scripturi nu sunt afectate. ini_get citește valoarea curentă, mereu ca text. Există și aliasul ini_alter, identic cu ini_set.

Nu toate setările pot fi schimbate din cod. De exemplu, upload_max_filesize și post_max_size se schimbă doar în php.ini, .htaccess sau .user.ini, deoarece cererea a fost deja primită când pornește scriptul. Pentru acestea, ini_set returnează false.

Parametri

Parametru Descriere
$option Numele setării, de exemplu "display_errors" sau "memory_limit".
$value Valoarea nouă.

Ce returnează

ini_set: valoarea veche, ca text, sau false dacă setarea nu poate fi schimbată. ini_get: valoarea curentă sau false dacă setarea nu există.

Exemple

Exemplul 1: Schimbarea și citirea unei setări

<?php
ini_set("memory_limit", "256M");
var_dump(ini_get("memory_limit"));

ini_set("display_errors", "0");
var_dump(ini_get("display_errors"));

Rezultat

string(4) "256M"
string(1) "0"

Exemplul 2: Setări care nu pot fi schimbate din cod

<?php
var_dump(ini_set("upload_max_filesize", "100M"));
var_dump(ini_get("setare_inexistenta"));

Rezultat

bool(false)
bool(false)

Exemplul 3: Afișarea erorilor doar pe calculatorul tău

<?php
$dezvoltare = true;

ini_set("display_errors", $dezvoltare ? "1" : "0");
ini_set("log_errors", "1");
ini_set("error_log", "erori.log");

echo "display_errors = " . ini_get("display_errors");

Rezultat

display_errors = 1

Greșeli frecvente

  • Încerci să mărești limita de upload cu ini_set("upload_max_filesize", ...). Nu are efect. Schimb-o în php.ini sau în panoul de găzduire.
  • Lași display_errors pornit pe site-ul public. Vizitatorii văd căi de fișiere și detalii interne. Pe producție, afișarea erorilor trebuie oprită și erorile scrise în jurnal.
  • Compari ini_get cu un boolean. Rezultatul este text, de exemplu "1" sau "".

Comenzi înrudite

  • set_time_limit: Stabilește câte secunde poate rula scriptul înainte să fie oprit.
  • parse_ini_file: Citește un fișier de configurare .ini și îl transformă într-un tablou.
  • memory_get_usage / memory_get_peak_usage: Returnează câtă memorie folosește scriptul acum (memory_get_usage) sau maximul atins (memory_get_peak_usage).
  • ini_restore: Readuce o setare PHP la valoarea din php.ini, după ce a fost schimbată cu ini_set.
  • ini_get_all: Returnează toate setările PHP sau doar pe cele ale unei extensii, cu valorile lor.