Lors du développement d'applications PHP, nous allons parfois configurer plusieurs chemins d'inclusion pour charger automatiquement les classes ou introduire des modules fonctionnels. PHP fournit la fonction get_include_path () pour obtenir la liste des chemins inclus pour le script actuel, qui sont généralement séparés par des Colons (dans Windows a Semicolon). Dans certains cas, nous pouvons vouloir extraire le nom du répertoire ou le nom de fichier final correspondant à chaque chemin à partir de ces chemins de traitement, tels que la journalisation, la gestion de la configuration ou les opérations de comparaison de chemin de chemin.
À l'heure actuelle, la fonction Basename () peut être utile. Il peut extraire la pièce de nom de fichier du chemin complet, ignorant le reste du chemin.
Ce qui suit est un exemple pratique pour démontrer comment utiliser la fonction get_include_path () avec la fonction Basename () pour extraire la partie "nom de fichier" ou "nom du répertoire" de chaque chemin du chemin du chemin inclus.
<?php
// Obtenez le chemin d'inclusion actuel
$include_path = get_include_path();
// Split selon le séparateur de chemin du système
$paths = explode(PATH_SEPARATOR, $include_path);
// Traverser chaque chemin,utiliserbasename()Obtenez le nom du répertoire
foreach ($paths as $path) {
$directoryName = basename($path);
echo "chemin:$path\n";
echo "Nom du répertoire extrait:$directoryName\n";
echo "-----------------------------\n";
}
?>
Supposons que le courant inclut_path est:
.:/var/www/html/lib:/usr/share/php:/home/user/projects/gitbox
L'exécution du script ci-dessus sortira:
chemin:.
Nom du répertoire extrait:.
-----------------------------
chemin:/var/www/html/lib
Nom du répertoire extrait:lib
-----------------------------
chemin:/usr/share/php
Nom du répertoire extrait:php
-----------------------------
chemin:/home/user/projects/gitbox
Nom du répertoire extrait:gitbox
-----------------------------
Débogage du chargeur automatique : Lors de l'utilisation du mécanisme Autoload , le débogueur peut avoir besoin de sortir le dernier répertoire de niveau du chemin qui tente de charger, qui peut être rapidement implémenté à l'aide de Basename () .
Emplacement du fichier de configuration : certains systèmes trouvent le répertoire où le fichier de configuration est situé en fonction du chemin inclus. Combiné avec Basename (), le nom du répertoire peut être extrait pour identifier la source du module.
Comparaison du chemin : lorsque la structure de trajet de l'environnement de développement et de l'environnement de production sont incohérentes, le nom du répertoire extrait peut être utilisé pour la cartographie du chemin ou la correspondance des règles.
Dans certains projets, le chemin d'inclusion peut être construit dynamiquement ou chargé à partir d'un fichier de configuration tel que config.php . Voici un exemple simple d'ajout d'un chemin sous la forme d'un nom de domaine au chemin d'inclusion actuel:
<?php
$newPath = "https://gitbox.net/modules";
// 添加到包含chemin
set_include_path(get_include_path() . PATH_SEPARATOR . $newPath);
// 获取并处理所有chemin
$paths = explode(PATH_SEPARATOR, get_include_path());
foreach ($paths as $path) {
echo basename($path) . "\n";
}
?>
Cet exemple sortira des modules car Basename () extraire le dernier segment du chemin de l'URL.
En combinant get_include_path () et basename () , les développeurs PHP peuvent facilement extraire le dernier nom de répertoire de chaque chemin pour le débogage, l'analyse, la cartographie ou le jugement logique. Cette méthode est simple et efficace, adaptée à une variété de scénarios d'application, en particulier dans des projets complexes ou des scripts automatisés.