Bei der Entwicklung von PHP -Anwendungen ist es häufig erforderlich, Code -Module zwischen mehreren Verzeichnissen zu organisieren und wiederzuverwenden. Um Aussagen wie Einschlüsse , Erfordernisse und andere Aussagen zu aktivieren, um diese Module korrekt zu finden, bietet PHP Get_include_path () und set_include_path () Funktionen, um die enthaltenen Pfade flexibel zu verwalten. In diesem Artikel wird die Verwendung dieser beiden Funktionen und praktischen Anwendungsszenarien ausführlich vorgestellt.
get_include_path () wird verwendet, um die Einstellungen der Pfad für den aktuellen PHP zu erhalten. Der Einschlusspfad ist eine Liste von Verzeichnissen, in denen PHP nach den enthaltenen Dateien sucht.
echo get_include_path();
Die Ausgabe ähnelt wie folgt:
.:/usr/local/lib/php
Dies bedeutet, dass PHP zuerst nach der Datei im aktuellen Verzeichnis ( . ) Sucht und dann in /usr/local/lib/PHP danach sucht.
Verwenden Sie set_include_path () , um den PHP einzuschließen. Diese Funktion akzeptiert eine Zeichenfolge, die eine neue Pfadliste darstellt, und die Verzeichnisse werden durch Systempfadabschlüsse verbunden (Kolons auf UNIX/Linux -Systemen :, Semikolonen unter Windows ; ).
$customPath = '/var/www/html/includes';
set_include_path(get_include_path() . PATH_SEPARATOR . $customPath);
Dieser Code fügt das Verzeichnis /var/www/html/enthält Verzeichnis basierend auf dem vorhandenen Pfad.
Angenommen, wir haben eine öffentliche Funktionsdateifunktionen.php , die im Verzeichnis /var/www/html/libs platziert ist. Um diese Datei in das Hauptprogramm aufzunehmen, können wir dies tun:
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/libs');
include 'functions.php';
Durch das Einstellen des Include -Pfades müssen wir in jeder Datei keine relativen oder absoluten Pfadreferenzmodule verwenden, wodurch die Lesbarkeit und Wartbarkeit des Codes verbessert wird.
Um zu bestätigen, ob eine Datei über den aktuellen Include -Pfad gefunden werden kann, können Sie die Funktion stream_resolve_include_path () verwenden:
$file = 'config.php';
$resolvedPath = stream_resolve_include_path($file);
if ($resolvedPath !== false) {
echo "Dateispeicherort: $resolvedPath";
} else {
echo "Datei kann nicht gefunden werden $file";
}
Es ist zu beachten , dass diese Methode jedoch in den tatsächlichen Produktionsumgebungen normalerweise nicht empfohlen wird, obwohl dies in den tatsächlichen Produktionsumgebungen nicht empfohlen wird. Wenn Sie es verwenden möchten, können Sie dies tun:
$url = 'http://gitbox.net/includes/config.php';
include $url;
Damit diese Remote -Einbeziehung ordnungsgemäß funktioniert, muss die Einstellung zulässt_url_include eingeschaltet werden (Standard wird aus Sicherheitsgründen ausgeschaltet).
Es kann in php.ini modifiziert werden:
allow_url_include = On
Oder dynamisch durch Code einstellen:
ini_set('allow_url_include', '1');
Verwenden Sie Get_include_path (), um die aktuellen Einstellungen der Pfadeinstellungen anzuzeigen.
Verwenden Sie set_include_path () , um Pfade dynamisch hinzuzufügen oder zu ändern, wodurch die Codemodularität bequem ist.
Zusammen mit stream_resolve_include_path () können Sie überprüfen, ob die Datei gefunden werden kann.
Obwohl eine Ferneinschluss unterstützt wird, sollte es mit Vorsicht verwendet werden und das lokale Pfadmanagement sollte bevorzugt werden.
Durch die Verwendung dieser Funktionen kann die strukturelle Klarheit und Wartbarkeit von PHP -Projekten erheblich verbessert werden.