Position actuelle: Accueil> Derniers articles> Comment modifier le chemin inclus dans php: get_include_path () et set_include_path ()

Comment modifier le chemin inclus dans php: get_include_path () et set_include_path ()

gitbox 2025-05-29

Lors du développement d'applications PHP, il est souvent nécessaire d'organiser et de réutiliser des modules de code entre plusieurs répertoires. Afin d'activer les instructions telles que les instructions incluées , requises et autres pour trouver correctement ces modules, PHP fournit des fonctions get_include_path () et set_include_path () pour gérer de manière flexible les chemins inclus. Cet article présentera en détail l'utilisation de ces deux fonctions et scénarios d'application pratiques.

1. Get_include_path (): Obtenez le chemin actuellement inclus

get_include_path () est utilisé pour obtenir les paramètres de chemin d'inclusion pour le PHP actuel. Le chemin d'inclusion est une liste des répertoires où PHP recherche les fichiers inclus.

Exemple

 echo get_include_path();

La sortie est similaire à ce qui suit:

 .:/usr/local/lib/php

Cela signifie que PHP recherchera d'abord le fichier dans le répertoire actuel ( . ), Puis le recherchera dans / usr / local / lib / php .

2. Set_include_path (): définissez un nouveau chemin d'inclusion

Utilisez set_include_path () pour modifier le chemin d'inclusion de PHP. Cette fonction accepte une chaîne représentant une nouvelle liste de chemins, et les répertoires sont connectés par les séparateurs de chemin du système (Colons sur les systèmes UNIX / Linux : , Semicolons sur Windows ; ).

Exemple: ajoutez un répertoire personnalisé pour inclure le chemin

 $customPath = '/var/www/html/includes';
set_include_path(get_include_path() . PATH_SEPARATOR . $customPath);

Ce code ajoute le répertoire / var / www / html / inclut le répertoire basé sur le chemin inclus existant.

3. Application pratique: développement modulaire

Supposons que nous ayons un fichier de fonctions publics functions.php , qui est placé dans le répertoire / var / www / html / libs . Afin d'inclure ce fichier dans le programme principal, nous pouvons le faire:

 set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/libs');

include 'functions.php';

En définissant le chemin d'inclusion, nous n'avons pas à utiliser des modules de référence de chemin relatifs ou absolus dans chaque fichier, améliorant la lisibilité et la maintenabilité du code.

4. Utilisez stream_resolve_include_path () pour confirmer si le fichier peut être inclus

Pour confirmer si un fichier peut être trouvé via le chemin d'inclusion actuel, vous pouvez utiliser la fonction Stream_Resolve_Include_Path () :

 $file = 'config.php';
$resolvedPath = stream_resolve_include_path($file);

if ($resolvedPath !== false) {
    echo "Emplacement du fichier: $resolvedPath";
} else {
    echo "Le fichier ne peut être trouvé $file";
}

5. Utiliser conjointement avec les URL (par exemple, y compris les fichiers distants via fopen)

Il convient de noter que bien que l'inclusion et l'exigence puissent prendre en charge les emballages d'URL (tels que http: // ), cette méthode n'est généralement pas recommandée dans les environnements de production réels. Si vous souhaitez l'utiliser, vous pouvez le faire:

 $url = 'http://gitbox.net/includes/config.php';
include $url;

Pour que cette inclusion distante fonctionne correctement, le paramètre Allow_URL_Include doit être activé (la valeur par défaut est désactivée pour des raisons de sécurité).

Il peut être modifié dans php.ini:

 allow_url_include = On

Ou le définir dynamiquement via le code:

 ini_set('allow_url_include', '1');

6. Résumé

  • Utilisez get_include_path () pour afficher les paramètres actuels d'inclusion.

  • Utilisez set_include_path () pour ajouter ou modifier dynamiquement des chemins, ce qui le rend pratique pour la modularité du code.

  • Avec stream_resolve_include_path (), vous pouvez vérifier si le fichier peut être trouvé.

  • Bien que l'inclusion à distance soit prise en charge, elle doit être utilisée avec prudence et la gestion du chemin local doit être préférée.

En utilisant ces fonctions raisonnablement, la clarté structurelle et la maintenabilité des projets PHP peuvent être considérablement améliorées.