Bei der Entwicklung von PHP -Anwendungen konfigurieren wir manchmal mehrere Include -Pfade zum automatischen Laden von Klassen oder die Einführung von Funktionsmodulen. PHP stellt die Funktion get_include_path () zur Verfügung, um die Liste der enthaltenen Pfade für das aktuelle Skript zu erhalten, die normalerweise von Kolons (in Windows a Semikolon) getrennt werden. In einigen Fällen möchten wir möglicherweise den Verzeichnisnamen oder den endgültigen Dateinamen extrahieren, der jedem Pfad aus diesen Pfaden für die Verarbeitung entspricht, z. B. Protokollierung, Konfigurationsverwaltung oder PATH -Vergleichs -Peer -Operationen.
Zu diesem Zeitpunkt kann die BasisName () -Funktion nützlich sein. Es kann den Dateinamenteil aus dem vollständigen Pfad extrahieren und den Rest des Pfades ignorieren.
Das Folgende ist ein praktisches Beispiel, um zu demonstrieren, wie Sie mit der Funktion von GET_INCLUDE_PATH () mit der Funktion BaseName () den Teil "Dateinamen" oder "Verzeichnisname" von jedem Pfad aus dem enthaltenen Pfad extrahieren können.
<?php
// Holen Sie sich den aktuellen Pfad enthalten
$include_path = get_include_path();
// Aufgeteilt nach dem Pfadabscheider des Systems
$paths = explode(PATH_SEPARATOR, $include_path);
// Überqueren Sie jeden Weg,verwendenbasename()Holen Sie sich den Verzeichnisnamen
foreach ($paths as $path) {
$directoryName = basename($path);
echo "Weg:$path\n";
echo "Extrahierter Verzeichnisname:$directoryName\n";
echo "-----------------------------\n";
}
?>
Angenommen, der aktuelle Include_Path ist:
.:/var/www/html/lib:/usr/share/php:/home/user/projects/gitbox
Ausführen des obigen Skripts Ausgabe:
Weg:.
Extrahierter Verzeichnisname:.
-----------------------------
Weg:/var/www/html/lib
Extrahierter Verzeichnisname:lib
-----------------------------
Weg:/usr/share/php
Extrahierter Verzeichnisname:php
-----------------------------
Weg:/home/user/projects/gitbox
Extrahierter Verzeichnisname:gitbox
-----------------------------
Automatisches Lader -Debugging : Bei Verwendung des Autoload -Mechanismus muss der Debugger möglicherweise das letzte Levelverzeichnis des Pfades ausgeben, der versucht, zu laden, der mit BasName () schnell implementiert werden kann.
Standort für Konfigurationsdatei : Einige Systeme finden das Verzeichnis, in dem sich die Konfigurationsdatei basierend auf dem enthaltenen Pfad befindet. In Kombination mit BasiName () kann der Verzeichnisname extrahiert werden, um die Modulquelle zu identifizieren.
Pfadvergleich : Wenn die Pfadstruktur der Entwicklungsumgebung und die Produktionsumgebung inkonsistent ist, kann der extrahierte Verzeichnisname für die Pfadzuordnung oder die Regelung von Regel verwendet werden.
In einigen Projekten kann der inklusive Pfad dynamisch konstruiert oder aus einer Konfigurationsdatei wie config.php geladen werden. Hier ist ein einfaches Beispiel für das Hinzufügen eines Pfades in Form eines Domänennamens zum aktuellen Include -Pfad:
<?php
$newPath = "https://gitbox.net/modules";
// 添加到包含Weg
set_include_path(get_include_path() . PATH_SEPARATOR . $newPath);
// 获取并处理所有Weg
$paths = explode(PATH_SEPARATOR, get_include_path());
foreach ($paths as $path) {
echo basename($path) . "\n";
}
?>
In diesem Beispiel wird Module ausgegeben, da BaseName () das letzte Segment des Pfades aus der URL extrahiert.
Durch Kombinieren von GET_INCLUDE_PATH () und BASENAME () können PHP -Entwickler den letzten Verzeichnisnamen jedes Pfades für Debuggen, Analyse, Zuordnung oder logisches Urteilsvermögen problemlos extrahieren. Diese Methode ist einfach und effizient und für eine Vielzahl von Anwendungsszenarien geeignet, insbesondere in komplexen Projekten oder automatisierten Skripten.