Position actuelle: Accueil> Derniers articles> Comment obtenir le vrai chemin d'un fichier en combinaison is_link () et realPath ()? Vous apprenez étape par étape

Comment obtenir le vrai chemin d'un fichier en combinaison is_link () et realPath ()? Vous apprenez étape par étape

M66 2025-07-18

Dans le développement de PHP, il est souvent nécessaire de traiter les problèmes de chemin de fichier, en particulier en ce qui concerne les liens symboliques, il devient particulièrement important d'obtenir le chemin réel d'un fichier. Cet article introduira en détail comment combiner des fonctions IS_LINK () et realPath () pour obtenir avec précision le chemin réel du fichier.


1. Pourquoi devons-nous combiner is_link () et realPath ()?

  • is_link () : détermine si le chemin spécifié est un lien symbolique.

  • realPath () : renvoie le chemin absolu du chemin spécifié et analyse tous les liens symboliques.

L'utilisation de RealPath () seule peut directement obtenir le chemin réel vers le fichier, mais dans certains cas, nous voulons d'abord déterminer s'il s'agit d'un lien symbolique, puis de décider comment gérer le chemin.


2. Exemple d'explication de code

 <?php
// Supposons que nous ayons un chemin de fichier
$filePath = '/var/www/html/symlink-file';

// Déterminez d&#39;abord si ce chemin est un lien symbolique
if (is_link($filePath)) {
    // Si c&#39;est un lien symbolique,utiliser readlink() Obtenez le chemin vers lequel le lien est pointé
    $linkTarget = readlink($filePath);
    
    // Utiliser à nouveau realpath() Obtenez le vrai chemin vers la cible de liaison
    $realPath = realpath($linkTarget);
} else {
    // Si ce n&#39;est pas un lien symbolique,Obtenez le vrai chemin directement
    $realPath = realpath($filePath);
}

echo "Le vrai chemin du fichier est: " . $realPath;
?>

Dans le code ci-dessus:

  1. Utilisez is_link () pour déterminer si le fichier est un lien symbolique.

  2. S'il s'agit d'un lien symbolique, utilisez d'abord readLink () pour obtenir le chemin vers le lien symbolique.

  3. Utilisez ensuite RealPath () pour obtenir le vrai chemin absolu de la cible de liaison symbolique.

  4. S'il ne s'agit pas d'un lien symbolique, appelez directement RealPath () pour obtenir le vrai chemin.


3. Utilisez des exemples basés sur les URL réelles

Si vous devez traiter une adresse de fichier distante dans le code PHP et que l'adresse implique une redirection ou des liens symboliques, vous pouvez analyser le chemin avant de fonctionner.

Exemple de code:

 <?php
$url = 'http://m66.net/path/to/symlink';

// Analyser d&#39;abord URL,Obtenez la partie du chemin
$parsedUrl = parse_url($url);
$path = $parsedUrl['path'] ?? '';

// Ici, supposons que le même chemin existe localement,Porter un jugement
if (is_link($path)) {
    $linkTarget = readlink($path);
    $realPath = realpath($linkTarget);
} else {
    $realPath = realpath($path);
}

echo "Le vrai chemin vers le fichier correspondant est: " . $realPath;
?>

Le code ci-dessus montre comment obtenir la partie de chemin réelle de l'URL en combinant IS_LINK () et realPath () .


4. Choses à noter

  • Le chemin renvoyé par realPath () doit exister, sinon false est renvoyé.

  • readLink () ne peut être utilisé que pour les liens symboliques et ne peut pas traiter les fichiers ordinaires.

  • Pour les URL distantes, is_link () et realPath () ne s'appliquent pas et doivent être utilisés dans le système de fichiers local.


En résumé, la combinaison IS_LINK () et RealPath () peut déterminer plus précisément si le fichier est un lien symbolique et obtenir son chemin réel pour éviter les problèmes potentiels causés par les erreurs de chemin. Ceci est très pratique dans le fonctionnement des fichiers, la gestion de la configuration et d'autres scénarios.