Definieren root-Pfad eine Zeit an einem Ort
Ich gerne verweisen Bilder, css-und php-Dateien mit Ihren absoluten Pfad, d.h. ausgehend von der Wurzel, mit einer Adresse, beginnend mit "/".
Muss ich include die php-Dateien sind alle auf "/bin/res/include". Ich habe herausgefunden, ich kann nicht mit absoluten Pfaden in php, wie mache ich in html. Nach einigen Recherchen entdeckte ich die beste Methode, die passt meine Bedürfnisse ist
define("PHP_ROOT", "/home/a7503679/public_html/bin/res/include/");
dann einige Datei
include_once(PHP_ROOT."filename.php");
Ich nicht wollen, fügen Sie zuerst definieren, die auf jeder html-Seite. Kann ich einen global definieren? Kann ich definieren, dass eine Konstante Zeit an einem Ort und machen Sie es bekannt, dass alle html-Seiten? Wenn ja, wie und wo ist der globalen?
- Ich kann nicht mit
dirname(__FILE__);
da, nur gibt den vollständigen Pfad zu dem Ordner, wo ich derzeit bin, die möglicherweise nicht die Wurzel. - Ich kann nicht mit
$_SERVER['DOCUMENT_NAME']
denn ich bin mit einem shared-hosting-service.
[UPDATE:Lösung] thx an alle, besonders RiaD für seine Idee, das ist, was ich getan habe:
Bearbeitet meine .htaccess-Datei im Stammverzeichnis meiner website und fügte hinzu, die folgende Zeile,
#Loads an init php located at <fullpath>/<path-to-folder-with-php-files-to-include>/init.php
php_value auto_prepend_file /home/a7503679/public_html/bin/res/include/init.php
Nun alle meine html-Dateien enthalten, init.php Datei, so sollten Sie (wie ich) dort alle gängigen php-code müssen Sie auf jeder html-Seite, in meinem Fall war:
<?php
define("PHP_ROOT", "/home/a7503679/public_html/bin/res/include/"); #this solves the problem
include 'lang.php'; #translations file
?>
Bevor ich brauchte, um zu umfassen, dass lang.php
auf jeder Seite und jetzt ist es automatisch gemacht. Wenn ich auch andere php-Datei, mit den absoluten Pfad, ich tippe einfach include PHP_ROOT.'filename.php';
InformationsquelleAutor dialex | 2011-08-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
auto_prepend_file
in Ihrem.htaccess
PS:
$_SERVER['DOCUMENT_ROOT']
funktionieren sollte (auf shared-hostings zu)$_SERVER['DOCUMENT_ROOT']
zurück/usr/local/apache/htdocsa
, einen Weg, der nicht entspricht, jeder nutzbare Platz (ich weiß gar nicht, wo das ist! :P)InformationsquelleAutor RiaD
Ich denke, was Sie tun möchten, ist ändern Sie Ihre include_path in php.ini Ihre benutzerdefinierte include-Pfad(s). Dann kann man nur include-Dateien ohne Pfad-Qualifikation, und wenn Sie nicht im aktuellen Verzeichnis, PHP Suche die include-Pfade für Sie. Wenn Sie können nicht ändern Sie Ihre php.ini, rufen set_include_path in der Konfigurationsdatei, die Sie wissen, Sie sind gonna haben, um auf jeder Seite sowieso. 🙂
php.ini
Datei, aber ich habe ein.htaccess
- Datei. Wo sollen diephp.ini
platziert werden? Ich denke, ich habe keine config-Datei in jeder Seite, können Sie geben Sie ein beliebiges Beispiel? Nun, es ist... kann ich machen, dass call ou fügen Sie definieren, um eine css - Datei? Klingt böse!Ich druckte mir eine phpinfo() und fand heraus, dass ich bereits eine
php.ini
bei/usr/local/lib
und kann ich vielleicht dorthin. Gibt es eine Möglichkeit die zu benutzen .htaccess-Datei, um eine "init" - php-Datei? Es scheint mehr intuitiv als mit dem css-Datei.InformationsquelleAutor Ryan Ballantyne
hinzufügen definieren, um eine Seite einschließen, die auf jeder Seite enthalten wie eine config/database/language-Datei
InformationsquelleAutor amigura