Signatur
Beschreibung
ini_alter() ist ein vollständiger Alias der Funktion ini_set() und verhält sich identisch zu dieser. Sie setzt den Wert einer PHP-Konfigurationsdirektive temporär für die Dauer der aktuellen Skript-Ausführung, ohne die globale Konfiguration (php.ini) dauerhaft zu verändern.
Die Änderung gilt ausschließlich für das aktuelle Skript und wird nach dem Ende der Anfrage automatisch zurückgesetzt. Damit eignet sich die Funktion beispielsweise dafür, innerhalb eines einzelnen Skripts das Fehler-Reporting, Zeitlimits oder Zeichenkodierungen anzupassen.
Da es sich um einen Alias handelt, empfiehlt die PHP-Dokumentation die Verwendung von ini_set() direkt. ini_alter() existiert lediglich aus historischen Gründen und zur Abwärtskompatibilität. In neuem Code sollte stets ini_set() bevorzugt werden.
Nicht alle Direktiven können per Skript geändert werden – ob eine Direktive änderbar ist, hängt von ihrem PHP_INI_*-Zugriffslevel ab. Direktiven mit dem Level PHP_INI_SYSTEM oder PHP_INI_PERDIR lassen sich im Skript nicht überschreiben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $option Pflicht | string | Name der PHP-Konfigurationsdirektive, die geändert werden soll (z. B. display_errors, max_execution_time). |
|
| $value Pflicht | string | Der neue Wert der Direktive als Zeichenkette. Boolesche Werte werden als '1' (true) oder '0' (false) angegeben. |
Rückgabewert
false zurück, wenn die Direktive nicht existiert oder nicht geändert werden darf.Beispiele
Fehleranzeige temporär aktivieren
<?php
// Alten Wert sichern und Fehleranzeige einschalten
$alterWert = ini_alter('display_errors', '1');
echo 'Alter Wert: ' . $alterWert . PHP_EOL;
// Ab hier werden Fehler direkt im Browser angezeigt
echo 'display_errors ist jetzt: ' . ini_get('display_errors') . PHP_EOL;
// Nach Skriptende wird der ursprüngliche Wert automatisch wiederhergestellt
Maximale Ausführungszeit für ein langes Skript erhöhen
<?php
// Zeitlimit auf 120 Sekunden erhöhen (Standard: 30)
$alterWert = ini_alter('max_execution_time', '120');
echo 'Altes Zeitlimit: ' . $alterWert . ' Sekunden' . PHP_EOL;
echo 'Neues Zeitlimit: ' . ini_get('max_execution_time') . ' Sekunden' . PHP_EOL;
// Ressourcenintensive Verarbeitung hier ...
sleep(1); // Simuliert aufwändige Arbeit
echo 'Verarbeitung abgeschlossen.' . PHP_EOL;
// Wichtig · Fallstricke
Alias-Hinweis: ini_alter() ist ein direkter Alias von ini_set(). In neuem Code sollte grundsätzlich ini_set() verwendet werden, da Aliase in zukünftigen PHP-Versionen theoretisch entfernt werden könnten.
Einschränkungen: Nicht jede Direktive kann per Skript geändert werden. Direktiven mit dem Zugriffslevel PHP_INI_SYSTEM (z. B. disable_functions) können ausschließlich in der php.ini oder per Servermodul gesetzt werden. Ein Aufruf mit solchen Direktiven gibt false zurück.
Sicherheit: Ändere sicherheitsrelevante Direktiven wie open_basedir, safe_mode oder disable_functions niemals basierend auf Benutzereingaben, da dies Sicherheitslücken öffnen kann.