Définir le chemin d'accès racine d'un temps à un endroit
J'aime à voir des images, css et php les fichiers à l'aide de leur chemin d'accès absolu, c'est à partir de la racine, avec une adresse commençant par "/".
J'ai besoin d'inclure des fichiers php qui sont tous situés à l' "/bin/res/include". J'ai compris que je ne peux pas utiliser des chemins absolus en php comme je le fais en html. Après quelques recherches, j'ai découvert que la meilleure méthode qui convient à mes besoins est à
define("PHP_ROOT", "/home/a7503679/public_html/bin/res/include/");
et puis pour inclure un fichier
include_once(PHP_ROOT."filename.php");
Je ne veux pas coller la première définir sur chaque page html. Puis-je faire global définir? Puis-je définir la constante d'un temps à un endroit et de le faire connaître à toutes les pages html? Si oui, comment et où est le mondiale place?
- Je ne peux pas utiliser
dirname(__FILE__);
parce que seul donne le chemin d'accès complet vers le dossier où je suis actuellement, ce qui peut ne pas être la racine. - Je ne peux pas utiliser
$_SERVER['DOCUMENT_NAME']
parce que je suis en utilisant un service d'hébergement mutualisé.
[Mise à JOUR:solution] merci tout le monde, surtout RiaD pour son idée, c'est ce que j'ai fait:
Édité mon .fichier htaccess à la racine de mon site et ajout de la ligne suivante,
#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
Maintenant tous mes fichiers html comprendra que init.php fichier, de sorte que vous devrait (comme moi) y mettre tout le code php que vous aurez besoin de chaque page html, ce qui dans mon cas était:
<?php
define("PHP_ROOT", "/home/a7503679/public_html/bin/res/include/"); #this solves the problem
include 'lang.php'; #translations file
?>
Avant j'avais besoin d'inclure des lang.php
sur chaque page et maintenant, c'est fait automatiquement. Si j'ai besoin d'inclure un autre fichier php, à l'aide de son chemin d'accès absolu, je viens de type include PHP_ROOT.'filename.php';
OriginalL'auteur dialex | 2011-08-05
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
auto_prepend_file
dans votre.htaccess
PS:
$_SERVER['DOCUMENT_ROOT']
devrait fonctionner (sur le partage des hébergements trop)$_SERVER['DOCUMENT_ROOT']
retourne/usr/local/apache/htdocsa
, un chemin qui ne correspond pas à tout utilisable place (je ne sais même pas où c'est! :P)OriginalL'auteur RiaD
Je pense que ce que vous voulez faire est de modifier votre include_path de php.ini inclure personnalisé de votre chemin(s). Ensuite, vous pouvez simplement inclure des fichiers sans aucun chemin qualificatifs, et si ils ne sont pas présents dans le répertoire courant, PHP va chercher vos chemins. Si vous ne pouvez pas modifier votre php.ini, faire un appel à set_include_path dans le fichier de configuration que vous savez que vous allez avoir du fil à inclure sur chaque page de toute façon. 🙂
php.ini
fichier, mais j'ai un.htaccess
fichier. Où doitphp.ini
être placé? Je pense que je n'ai pas de fichier de config être inclus dans chaque page, pouvez-vous nous donner un exemple? Eh bien, il en est une... puis-je faire cet appel ou coller à la définition d'un css fichier? Sons méchants!J'ai imprimé un phpinfo() trouvé et j'en ai déjà un
php.ini
à/usr/local/lib
et je ne peux pas y arriver. Est-il possible d'utiliser l' .fichier htaccess pour inclure un "init" fichier php? Il semble plus intuitif que d'utiliser le fichier css.OriginalL'auteur Ryan Ballantyne
ajouter à la définition d'une page qui est inclus sur chaque page d'un fichier config/database/langue de fichier
OriginalL'auteur amigura