Start · Sprachen · PHP · Referenz · ini_alter

ini_alter

Funktion

Alias von <code>ini_set()</code> — setzt den Wert einer PHP-Konfigurationsdirektive für die aktuelle Anfrage.

seit PHP 4.0.0 Kategorie: misc

Signatur

ini_alter(string $option, string $value): string|false

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

Typ
string|false
Beschreibung
Gibt den alten Wert der Direktive als Zeichenkette zurück, wenn die Änderung erfolgreich war. Gibt 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
Alter Wert: 0 display_errors ist jetzt: 1

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;
Altes Zeitlimit: 30 Sekunden Neues Zeitlimit: 120 Sekunden Verarbeitung abgeschlossen.

// 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.