So fügen Sie einen Pfad zu PHPs include_path in .htaccess an
-
16-09-2019 - |
Frage
Derzeit verwende ich auf meiner Website Aussagen wie:
include 'head.php';
include '../head.php';
include '../../head.php';
Abhängig davon, wie viele verschachtelte Ordner tief bin. Ich bin sicher, es gibt einen besseren Weg, dies zu tun.
Ich bin überzeugt .htaccess
ist die Lösung, aber ich bin mir nicht sicher, wie ich sie implementieren soll. Wenn ich einfüge:
php_value include_path "public/html/root"
... Ich verliere den Rest meiner Wege (/usr/lib/php
, etc). Ich habe es naiv versucht:
php_value include_path $include_path . "(path)"
Aber das hat natürlich nicht funktioniert. Wie könnte ich einen einzelnen Pfad dieser Liste vorbereiten oder anhängen? .htaccess
?
Lösung
Wenn Sie die nicht bearbeiten können php.ini
Datei selbst können Sie hinzufügen
set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);
vor deinem include
Aussagen.
Wenn Sie sich jedoch befinden, haben Sie jedoch include
oder require
Probleme, es ist wahrscheinlich ein Codegeruch. Die beste Lösung wäre ein gutes objektorientiertes Design mit einem guten __autoload
Funktion.
Andere Tipps
Erstellen Sie im Unter-Sub-Verzeichnis eine Datei .htaccess
mit dem Inhalt
php_value include_path '../../includes'
oder Wasauchimmer include_path
ist richtig für dieses Verzeichnis.
Vorteile:
- Kein hässlicher Hack mit mehreren umfasst eine andere Tiefe. Gerade
include 'head.php'
. - Keine Abhängigkeit von der Bearbeitung
php.ini
. - Keine Notwendigkeit zu verwenden
set_include_path()
Voreingenommen. - Keine Abhängigkeit von Einbeziehung von Konstanten wie
include INCLUDE_PATH . 'head.php'
.
Zu zahlender Preis:
Sie verstreuen Ihre Unterabrechnung jeweils mit einer Datei .htaccess
.