Comment ajouter un chemin au chemin d'inclusion de PHP dans.htaccess

Actuellement sur mon site, j'utilise des instructions comme:

include 'head.php';
include '../head.php';
include '../../head.php';

En fonction du nombre de dossiers imbriqués profonds que je suis. Je suis sûr qu'il y est une meilleure façon de le faire.

Je suis convaincu que .htaccess est la solution, mais je ne suis pas sûr de savoir comment l'implémenter. Si j'insère:

php_value include_path "public/html/root"

... Je perds le reste de mes chemins (/usr/lib/php, etc.). J'ai naïvement essayé:

php_value include_path $include_path . "(path)"

Mais bien sûr, cela n'a pas fonctionné. Comment puis-je ajouter ou ajouter un seul chemin à cette liste avec .htaccess?

29
demandé sur zildjohn01 2009-07-16 07:02:28

2 réponses

Si vous ne pouvez pas modifier les php.ini fichier lui-même, vous pouvez ajouter

set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);

Avant vos déclarations include.

Toutefois, si vous vous trouvez avoir include ou require ennuis, c'est probablement une odeur de code. La meilleure solution serait une bonne conception orientée objet avec une bonne fonction __autoload.

22
répondu Otterfan 2009-07-16 03:13:55

Créer dans les sous-sous-répertoires un fichier .htaccess avec le contenu

php_value include_path '../../includes'

Ou tout ce que include_path est bon pour ce répertoire.

Avantages:

  1. Pas de hack laid avec plusieurs inclut avec une profondeur différente. Juste include 'head.php'.
  2. Pas de dépendance à l'édition php.ini.
  3. Pas besoin d'utiliser set_include_path() avant de les inclure.
  4. aucune dépendance sur l'inclusion de constantes comme include INCLUDE_PATH . 'head.php'.

Prix à payer:

Vous litière vos sous-sous-répertoires chacun avec un fichier .htaccess.

27
répondu nalply 2013-04-29 19:19:17