Maison >développement back-end >Problème PHP >Comment modifier le chemin absolu de php (trois méthodes)

Comment modifier le chemin absolu de php (trois méthodes)

PHPz
PHPzoriginal
2023-04-03 18:52:191644parcourir

Dans le processus de développement de sites Web ou d'applications utilisant PHP, nous avons souvent besoin de référencer des fichiers ou des ressources externes. À ce stade, vous devez utiliser des chemins absolus pour garantir l’exactitude du code. Cependant, notre chemin absolu doit parfois être modifié. Par exemple, lorsque notre site Web est transféré d'un serveur local vers un serveur distant, ou lorsque l'emplacement de stockage des fichiers est modifié, le chemin absolu doit être modifié en conséquence.

Ce qui suit explique comment modifier le chemin absolu de PHP.

1. Obtenir le chemin du fichier actuel

Avant de modifier le chemin absolu, nous devons obtenir le chemin absolu du fichier actuel. Vous pouvez utiliser le code PHP suivant pour obtenir le chemin du fichier actuel :

$dir = dirname(__FILE__);

Parmi eux, la fonction dirname() est utilisée pour supprimer les informations de chemin dans le nom du fichier, et la constante __FILE__ est utilisée pour obtenir le chemin complet du fichier courant. Après avoir exécuté le code ci-dessus, la variable $dir est le chemin du fichier actuel.

2. Modifier le chemin absolu

Après avoir obtenu le chemin du fichier actuel, nous pouvons modifier le chemin absolu de manière ciblée. La méthode spécifique est la suivante :

  1. Modifier manuellement le chemin

La modification manuelle du chemin absolu est la méthode la plus simple et la moins recommandée. Nous devons simplement remplacer le chemin d'origine par le nouveau chemin. Par exemple, notre chemin absolu précédent était :

/home/wwwroot/example.com/inc/config.php

Nous devons maintenant déplacer ce fichier vers :

/home/wwwroot/newsite.com/inc/config.php

Nous devons changer le code d'origine qui fait référence au fichier :

require_once "/home/wwwroot/example.com/inc/config.php";

en :

require_once "/home/wwwroot/newsite.com/inc/config.php";

Le problème avec cette méthode est que s'il existe de nombreux chemins, ou si notre site Web est référencé à plusieurs endroits, ce qui nécessite beaucoup de modifications de code, ce qui est très fastidieux. De plus, si on oublie de modifier le chemin quelque part, cela provoquera des erreurs dans le code.

  1. Utiliser des chemins relatifs

Par rapport à la modification manuelle du chemin, l'utilisation de chemins relatifs est plus pratique. Nous pouvons convertir le chemin absolu en chemin relatif afin que même si le fichier est déplacé vers un autre emplacement, le chemin ne sera pas erroné.

En prenant l'exemple au début de cet article, nous pouvons convertir le chemin absolu en chemin relatif grâce à la méthode suivante :

$cur_path = dirname(__FILE__);
$target_path = '/home/wwwroot/newsite.com/inc/config.php';
$rel_path = str_replace($cur_path, '', $target_path);
if ($rel_path[0] == '/') {
    $rel_path = substr($rel_path, 1);
}

Ce code calculera l'emplacement de $config_file par rapport au fichier actuel. $rel_path est un chemin relatif, il suffit d'utiliser $rel_path pour référencer le fichier.

L'avantage de cette méthode est que même si l'emplacement du fichier ou la structure des répertoires du site Web est modifié, le code peut toujours s'exécuter normalement.

  1. Utiliser des constantes

Si notre site Web utilise le même chemin à plusieurs endroits, afin de faciliter la modification du chemin absolu, nous pouvons utiliser des constantes à la place du chemin. Une constante est une valeur fixe en PHP qui ne change pas tout au long de l'exécution du script.

La méthode de définition des constantes est très simple, il suffit d'utiliser la fonction définir() :

define('ROOT_PATH', '/home/wwwroot/newsite.com');

De cette façon, nous pouvons utiliser la constante ROOT_PATH au lieu du chemin absolu. Par exemple, nous devons référencer le fichier /config/config.php. Le code original qui faisait référence au fichier était :

require_once "/home/wwwroot/newsite.com/config/config.php";

Maintenant, nous pouvons le changer en :

require_once ROOT_PATH . '/config/config.php';

De cette façon, même si nous devons modifier le chemin absolu, il suffit de modifier le ROOT_PATH Juste une constante.

Résumé

Il n'est pas difficile de modifier le chemin absolu de PHP Nous pouvons atteindre l'objectif en le modifiant manuellement, en utilisant des chemins relatifs ou en utilisant des constantes. Cependant, pour des raisons de maintenabilité et de lisibilité du code, nous vous recommandons d'utiliser des chemins relatifs ou des constantes au lieu de chemins absolus. De cette façon, le code s'exécutera normalement même si l'emplacement du fichier change.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn