Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
 
 
 

Die PHP Konfiguration ändern mit ini_set()

Sie befinden sich: Home > Php Tutorial > Die PHP Konfiguration...

Die PHP Konfiguration ändern mit ini_set()


Eintrag am:  03.09.2010
Hits / Besucher:  6398
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

In PHP lassen sich viele Konfigurationseinstellungen nicht nur über die php.ini festlegen, sondern auch direkt im laufenden Script ändern. Die Funktion ini_set() macht genau das möglich. Das ist besonders praktisch auf Shared-Hosting-Servern, wo man keinen Zugriff auf die globale Konfigurationsdatei hat, oder wenn ein einzelnes Script abweichende Einstellungen benötigt.

So funktioniert ini_set()

Die Funktion erwartet zwei Parameter: den Namen der PHP-Einstellung und den gewünschten neuen Wert. Die Änderung gilt ausschließlich für den aktuellen Script-Durchlauf. Sobald das Script beendet ist, stellt PHP automatisch den ursprünglichen Wert wieder her.

<?php

ini_set('einstellung_name', 'neuer_wert');
?>

Der Rückgabewert ist der alte Wert der Einstellung vor der Änderung. Falls die Änderung fehlschlägt, gibt die Funktion false zurück. Beim Prüfen des Rückgabewerts sollte immer der strikte Vergleichsoperator !== false verwendet werden, da der alte Wert auch ein leerer String oder "0" sein kann.

Aktuellen Wert auslesen mit ini_get()

Mit der Funktion ini_get() lässt sich der aktuelle Wert einer beliebigen PHP-Einstellung abfragen. Das eignet sich gut, um vor einer Änderung den Ausgangswert zu prüfen oder nach dem Aufruf von ini_set() sicherzustellen, dass die Änderung übernommen wurde.

<?php

echo ini_get('memory_limit');
/* Ausgabe z.B.: 128M */
?>

Beispiel: Speicherlimit erhöhen

Bei der Verarbeitung großer Dateien oder umfangreicher Datenbank-Ergebnisse kann es vorkommen, dass der standardmäßig zugewiesene Arbeitsspeicher nicht ausreicht. Mit ini_set() lässt sich das memory_limit zur Laufzeit erhöhen.

<?php

echo 'Vorher: ' . ini_get('memory_limit');
/* Ausgabe: Vorher: 128M */

$alter_wert = ini_set('memory_limit', '256M');

if ($alter_wert !== false) {
echo 'Nachher: ' . ini_get('memory_limit');
/* Ausgabe: Nachher: 256M */
} else {
echo 'Einstellung konnte nicht geändert werden.';
}
?>

Beispiel: Fehleranzeige steuern

Während der Entwicklung ist es hilfreich, alle PHP-Fehler und Warnungen direkt im Browser anzuzeigen. Im Produktivbetrieb sollte die Fehlerausgabe dagegen abgeschaltet und stattdessen in eine Logdatei umgeleitet werden.

<?php

/* Entwicklung: Fehler anzeigen */
ini_set('display_errors', '1');
error_reporting(E_ALL);

/* Produktion: Fehler nur loggen */
ini_set('display_errors', '0');
ini_set('log_errors', '1');
?>

Welche Einstellungen lassen sich ändern?

Nicht jede PHP-Einstellung lässt sich per ini_set() ändern. PHP teilt die Einstellungen in verschiedene Stufen ein:

PHP_INI_ALL kann jederzeit geändert werden, auch per ini_set() im Script. Dazu gehören zum Beispiel display_errors, error_reporting und memory_limit.

PHP_INI_PERDIR lässt sich nur in der php.ini, per .htaccess oder in der Webserver-Konfiguration setzen. Ein Beispiel dafür ist upload_max_filesize.

PHP_INI_SYSTEM kann ausschließlich in der php.ini oder direkt in der Webserver-Konfiguration geändert werden. Ein Versuch mit ini_set() bleibt hier wirkungslos.

Versucht man eine Einstellung zu ändern, die per Script nicht änderbar ist, gibt ini_set() den Wert false zurück.

Änderung zurücksetzen mit ini_restore()

Wenn eine geänderte Einstellung vor Ende des Scripts wieder auf ihren Originalwert zurückgesetzt werden soll, steht dafür die Funktion ini_restore() bereit.

<?php

ini_set('display_errors', '1');
echo ini_get('display_errors');
/* Ausgabe: 1 */

ini_restore('display_errors');
echo ini_get('display_errors');
/* Ausgabe: 0 (Originalwert) */
?>

Häufig verwendete Einstellungen

Folgende Einstellungen werden in der Praxis besonders oft per ini_set() angepasst:

memory_limit bestimmt den maximalen Arbeitsspeicher pro Script. Typische Werte sind '128M' oder '256M'.

max_execution_time legt die maximale Laufzeit in Sekunden fest. Der Wert '0' bedeutet keine Begrenzung.

display_errors steuert, ob Fehlermeldungen im Browser erscheinen. In der Entwicklung auf '1' setzen, im Produktivbetrieb auf '0'.

date.timezone setzt die Standardzeitzone für alle Datumsfunktionen, zum Beispiel 'Europe/Berlin'.

Eine vollständige Übersicht aller Einstellungen und ihrer Änderungsstufen findet sich in der offiziellen PHP-Dokumentation unter php.net/manual/de/ini.list.php.

 

Tags:

 

Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.