En PHP, l'obtention du répertoire de travail actuel est une opération très importante dans de nombreux scénarios, tels que la lecture des fichiers, les chemins de réglage, etc. PHP fournit une variété de méthodes pour obtenir des informations de chemin, parmi lesquelles GetCwd () et Get_Include_Path () sont deux fonctions couramment utilisées. Cet article présentera le rôle de ces deux fonctions et montrera comment les utiliser en combinaison pour obtenir le chemin du répertoire de travail actuel.
GetCwd () est une fonction intégrée dans PHP. Son nom complet est "Get Current Working Directory", ce qui signifie obtenir le répertoire de travail actuel. Ce répertoire est le répertoire où le script est exécuté. Normalement, il renvoie un chemin absolu.
Exemple:
<?php
echo getcwd();
?>
La sortie peut être:
/var/www/html/project
Ce chemin est le répertoire fonctionnel de l'exécution actuelle du script.
get_include_path () est utilisé pour obtenir le chemin d'inclusion (y compris_path) dans la configuration PHP, c'est-à-dire la collection de chemins que PHP recherchera lors de la recherche de fichiers. Le chemin peut contenir plusieurs répertoires, séparés par des demi-colons (Windows) ou des Colons (Linux / MacOS).
Exemple:
<?php
echo get_include_path();
?>
Exemple de sortie:
.:/usr/local/lib/php
Le point ici représente le répertoire actuel.
Bien que GetCwd () puisse obtenir directement le répertoire de travail actuel, nous devons parfois connaître l'emplacement du répertoire de travail actuel dans include_path , ou convertir le chemin relatif dans include_path en un chemin absolu. À l'heure actuelle, la combinaison des deux utilisations peut traiter plus de manière flexible le chemin.
<?php
// Obtenez le répertoire de travail actuel
$currentDir = getcwd();
echo "Le répertoire de travail actuel est: " . $currentDir . "\n";
// Obtenir include_path
$includePath = get_include_path();
echo "include_path Le contenu est: " . $includePath . "\n";
// Volonté include_path Se diviser en tableaux
$paths = explode(PATH_SEPARATOR, $includePath);
// Chemin de traversée,Sortie du chemin complet
foreach ($paths as $path) {
if ($path === '.' || $path === '') {
// Utilisez le répertoire actuel getcwd() Alternative
$absolutePath = $currentDir;
} else {
// D'autres chemins restent inchangés
$absolutePath = $path;
}
echo "Chemin absolu: " . $absolutePath . "\n";
}
?>
Le répertoire de travail actuel est: /var/www/html/project
include_path Le contenu est: .:/usr/local/lib/php
Chemin absolu: /var/www/html/project
Chemin absolu: /usr/local/lib/php
Le point dans include_path représente le répertoire actuel . Ici, nous le remplaçons par le chemin obtenu par getCWD () .
De cette façon, vous pouvez obtenir une liste complète des chemins contenant, chaque chemin est un chemin absolu, ce qui est pratique pour le programme pour rechercher ou traiter les fichiers.
Supposons que vous ayez un projet qui doit lire certains fichiers de ressources selon include_path . Vous pouvez d'abord utiliser la méthode ci-dessus pour convertir le chemin relatif en un chemin absolu pour éviter l'incapacité de trouver le fichier en raison de problèmes de chemin.
De plus, la combinaison de ces deux fonctions vous permet de gérer les chemins de manière plus flexible, en particulier lorsque les chemins sont différents dans différents environnements ou déploiements, le code est plus portable.
getCwd () obtient le répertoire de travail actuel, généralement le répertoire où le script est en cours d'exécution, mais si le code est inclus ou que l'environnement en cours d'exécution est différent, les résultats peuvent différer.
include_path peut être configuré dans php.ini ou peut être défini dynamiquement via set_include_path () .
Les séparateurs de chemin varient selon le système d'exploitation. L'utilisation de constantes intégrées PHP Path_separator et Directory_separator peut améliorer la compatibilité.
getCwd () renvoie directement le chemin d'accès absolu vers le répertoire de travail actuel.
get_include_path () Renvoie PHP contient des paramètres de chemin, qui peuvent contenir des chemins relatifs et absolus.
En combinaison, tous les chemins relatifs (tels que . ) Dans le chemin inclus peuvent être convertis en chemins absolus, ce qui facilite le fonctionnement du fichier.
En utilisant rationnellement ces deux fonctions, les développeurs PHP peuvent mieux contrôler le chemin du fichier et éviter les troubles causés par les erreurs de chemin.
<?php
// Fonctions d'échantillon complètes:retour include_path 中所有路径的Chemin absolu数组
function getAbsoluteIncludePaths() {
$currentDir = getcwd();
$includePaths = explode(PATH_SEPARATOR, get_include_path());
$absolutePaths = [];
foreach ($includePaths as $path) {
if ($path === '.' || $path === '') {
$absolutePaths[] = $currentDir;
} else {
$absolutePaths[] = $path;
}
}
return $absolutePaths;
}
// Exemple d'appel
$paths = getAbsoluteIncludePaths();
foreach ($paths as $p) {
echo $p . PHP_EOL;
}
?>
Cet extrait de code peut facilement obtenir un tableau contenant tous les chemins absolus, ce qui est pratique pour le traitement de chemin ultérieur.