<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Rien à voir avec le contenu de l'articlePHPExemple de code</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Ceci est une partie indépendantePHPCode,Utilisé pour démontrer la séparation des articles。"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
PHPDans les opérations de fichiers,Souvent, vous devez obtenir le chemin absolu vers le répertoire où se trouve le fichier,Pour les opérations de lecture ou d'écriture ultérieures。`</span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>()`et`</span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>()`Ce sont deux fonctions très pratiques dans ce type de scénario,Ils ont chacun leurs propres utilisations,但搭配使用可以更加精确et安全地获取文件路径。
</span><span><span class="hljs-comment">### 1. `dirname()`fonction</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>()`Répertoire parent utilisé pour obtenir un chemin de fichier。Son utilisation fondamentale est la suivante:
```php
</span><span><span class="hljs-variable">$filePath</span></span><span> = </span><span><span class="hljs-string">"/var/www/html/index.php"</span></span><span>;
</span><span><span class="hljs-variable">$dirPath</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$dirPath</span></span><span>; </span><span><span class="hljs-comment">// Sortir: /var/www/html</span></span><span>
</span></span>Si le chemin contient des répertoires à plusieurs niveaux, vous pouvez spécifier la hiérarchie retournée via le deuxième paramètre:
<span><span><span class="hljs-variable">$dirPath</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$dirPath</span></span><span>; </span><span><span class="hljs-comment">// Sortir: /var/www</span></span><span>
</span></span>Notez que dirname () renvoie un chemin relatif ou le répertoire parent analysé dans le chemin d'origine, qui ne vérifiera pas si le chemin existe vraiment.
RealPath () est utilisé pour analyser le chemin dans un chemin absolu et analyser le lien symbolique , . et .. , tout en vérifiant si le chemin existe réellement. Les exemples sont les suivants:
<span><span><span class="hljs-variable">$path</span></span><span> = </span><span><span class="hljs-string">"./test/../index.php"</span></span><span>;
</span><span><span class="hljs-variable">$absolutePath</span></span><span> = </span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>(</span><span><span class="hljs-variable">$path</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$absolutePath</span></span><span>; </span><span><span class="hljs-comment">// Sortir绝对路径,Par exemple: /var/www/html/index.php</span></span><span>
</span></span>Si le chemin n'existe pas, realPath () renvoie false .
Pour vous assurer que le chemin du répertoire obtenu est à la fois précis et absolu, vous pouvez combiner les deux:
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">"./test/../index.php"</span></span><span>;
</span><span><span class="hljs-variable">$absoluteDir</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dirname</span></span><span>(</span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$absoluteDir</span></span><span>; </span><span><span class="hljs-comment">// Sortir: /var/www/html</span></span><span>
</span></span>Le processus ici est:
RealPath ($ file) convertit le chemin du fichier vers le chemin absolu réel.
dirname () obtient ensuite le répertoire parent à partir du chemin absolu.
Cette méthode peut garantir que le chemin du répertoire que vous obtenez existe et est un chemin absolu , en évitant les erreurs qui peuvent être causées par le chemin relatif.
Lorsque vous chargez des fichiers dynamiquement ou contenant des fichiers, vous devez vous assurer que le chemin est correct.
Enregistrez le journal et cachez le fichier dans le même répertoire que le fichier de script.
Évitez la confusion de chemin lors du déploiement sur les plates-formes.
dirname () : obtient le répertoire parent et peut spécifier la hiérarchie.
realpath () : analyse le chemin vers un chemin absolu qui existe vraiment.
Utilisation couplée: utilisez d'abord RealPath () pour vous assurer que le chemin existe vraiment, puis utilisez dirname () pour obtenir le répertoire où il est situé.
Cette combinaison d'utilisation est l'une des meilleures pratiques pour gérer les chemins de fichier dans les projets PHP.
<span><span><span class="hljs-comment">// 尾部示例Code</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Fin de l'exemple de l'article"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>