Signatur
Beschreibung
php_ini_scanned_files() liefert eine kommaseparierte Liste der .ini-Dateien, die PHP aus dem konfigurierten Scan-Verzeichnis (z. B. /etc/php.d/) beim Initialisieren eingelesen hat. Dieses Verzeichnis wird in der Regel zur Build-Zeit mit --with-config-file-scan-dir festgelegt oder über die Umgebungsvariable PHP_INI_SCAN_DIR gesteuert.
Die zurückgegebene Zeichenkette enthält die vollständigen Dateipfade, durch Komma und Zeilenumbruch getrennt. Mit explode() lässt sie sich leicht in ein Array umwandeln, um die einzelnen Dateipfade weiter zu verarbeiten.
Die Funktion ist vor allem in Diagnose- und Deployment-Werkzeugen nützlich: Sie erlaubt es, zur Laufzeit festzustellen, welche Erweiterungs- oder Einstellungsdateien aktiv geladen wurden, ohne das Dateisystem direkt durchsuchen zu müssen.
Wurde PHP ohne Scan-Verzeichnis kompiliert oder sind dort keine .ini-Dateien vorhanden, gibt die Funktion false zurück.
Rückgabewert
.ini-Dateien zurück (jeder Eintrag gefolgt von einem Zeilenumbruch). Ist kein Scan-Verzeichnis konfiguriert oder enthält es keine .ini-Dateien, wird false zurückgegeben.Beispiele
Alle gescannten ini-Dateien ausgeben
<?php
$scanned = php_ini_scanned_files();
if ($scanned !== false) {
echo "Eingelesene .ini-Dateien:\n";
$files = array_filter(array_map('trim', explode(',', $scanned)));
foreach ($files as $file) {
echo ' - ' . $file . "\n";
}
} else {
echo "Kein zusätzliches ini-Scan-Verzeichnis konfiguriert.\n";
}
Prüfen, ob eine bestimmte Erweiterungs-ini geladen wurde
<?php
$scanned = php_ini_scanned_files();
if ($scanned !== false) {
$files = array_map('trim', explode(',', $scanned));
$opcacheLoaded = array_filter($files, fn(string $f): bool => str_contains($f, 'opcache'));
if (!empty($opcacheLoaded)) {
echo "OPcache-ini gefunden: " . implode(', ', $opcacheLoaded) . "\n";
} else {
echo "Keine OPcache-ini-Datei im Scan-Verzeichnis gefunden.\n";
}
} else {
echo "Kein ini-Scan-Verzeichnis vorhanden.\n";
}
// Wichtig · Fallstricke
Das Scan-Verzeichnis kann zur Laufzeit nicht verändert werden; es wird einmalig beim Start des PHP-Prozesses ausgewertet. Soll ein anderes Verzeichnis genutzt werden, muss die Umgebungsvariable PHP_INI_SCAN_DIR vor dem Start des PHP-Prozesses gesetzt sein.
Die Ausgabe enthält nach jedem Dateipfad einen Zeilenumbruch (\n) – beim Aufteilen mit explode(',', ...) sollte jedes Element daher mit trim() bereinigt werden, um führende oder abschließende Whitespace-Zeichen zu entfernen.
Verwandte Diagnosefunktionen sind php_ini_loaded_file() (Pfad zur Haupt-php.ini) und phpinfo() (vollständige Konfigurationsübersicht).