In diesem Tutorial möchte ich Ihnen näher beschreiben, wie Sie mithilfe der ini_set() Funktion die Konfiguration von PHP zur Laufzeit verändern können. Nach dem Ende der Ausführung des Scripts wird die Option in der Konfiguration von der init_set() Funktion dann automatisch wieder auf den alten Wert zurückgesetzt.
Um eine Option in der Konfiguration von PHP zu ändern, müssen der ini_set() Funktion zwei Parameter übergeben werden: „Name“ und „Wert“. Über den Parameter „Name“ wird bestimmt, welche Option in der Konfiguration geändert werden soll und mit dem Parameter „Wert“ wird der neue Wert übergeben, der vorübergehend an die entsprechende Stelle in der Konfiguration geschrieben werden soll.
Die Syntax der ini_set() Funktion sieht demnach wie folgt aus:
ini_set(Name, Wert);
Es folgen zwei kleine Beispiele, wie Sie die ini_set() Funktion in einem PHP Script verwenden:
Der Code des Beispiels 1:
<?php
echo 'Der memory_limit ist:
'.ini_get('memory_limit').'<br>';
$return_ini_set = ini_set("memory_limit", "16M");
if ($return_ini_set != false) {
echo 'Der memory_limit wurde geändert auf:
'.ini_get('memory_limit').'<br>';
} else {
echo 'Der memory_limit konnte nicht geändert
werden.';
}
?>
Die Ausgabe des Beispiels 1:
Der memory_limit ist: 128M
Der memory_limit wurde geändert auf: 16M
Der Code des Beispiels 2:
<?php
echo 'Der session.save_path ist:
'.ini_get('session.save_path').'<br>';
$return_ini_set = ini_set("session.save_path",
"/");
if ($return_ini_set != false) {
echo 'Der session.save_path wurde geändert
auf: '.ini_get('session.save_path').'<br>';
} else {
echo 'Der session.save_path konnte nicht
geändert werden.';
}
?>
Die Ausgabe des Beispiels 2:
Der session.save_path ist: /Applications/XAMPP/xamppfiles/temp/
Der session.save_path wurde geändert auf: /
Anmerkung zu Beispiel 2:
Der Standardmäßige „session.save_path“ kann sich vom obigen unterscheiden, je nach installiertem Webserver.
Die Erklärung zu den Beispielen:
In beiden Beispielen passiert im Grunde dasselbe. Nur die zu ändernde Option der Konfiguration unterscheidet sich. Während im ersten Beispiel das „memory_limit“ (Maximalwert des, dem Script, zur Verfügung stehenden Speichers) von 128M auf 16M heruntergesetzt wird, wird im zweiten Beispiel der „session.save_path“ (Pfad zum Speicher, der von PHP genutzt werden kann) auf „/“ gesetzt.
Zunächst wird jeweils der aktuelle Wert in der Konfiguration mit der ini_get() Funktion abgefragt, bevor mit der komplementären ini_set() Funktion schließlich die Änderung an der Konfiguration vorgenommen wird. Bei Erfolg wird jeweils eine der beiden obigen Ausgaben verwendet. Wäre aber wider Erwarten ein Fehler beim Aufruf von ini_set() passiert, so hätte die Ausgabe von „Der memory_limit konnte nicht geändert werden.“ bzw. „Der session.save_path konnte nicht geändert werden.“ darauf hingewiesen.
Eine komplette Liste der Unmenge an möglichen Optionen, die man während der Laufzeit vorübergehend in der Konfiguration verändern kann, findet man, wenn man folgendem Link auf die offizielle PHP-Dokumentation folgt: https://www.php.net/manual/de/ini.list.php