Comment obtenir le chemin d'accès physique d'un fichier?
mon client a migré son serveur, l'adresse du serveur est le même, mais l'interne de la structure des dossiers a changé, je travaillais avec une fonction PHP qui avait besoin du serveur de chemin d'accès à un fichier
Par exemple, l'adresse du site est www.example.com/file.php et ma fonction en utilisant le chemin comme ceci:
require_once('/var/www/file.php');
Est-il un moyen de le savoir?
Vous devez vous connecter pour publier un commentaire.
Puisque c'est le premier hit sur Google et accepté la réponse est incomplète, selon l'esprit de la question, voici la réponse complète.
__FILE__
est un magique constante comme John Conde a dit, mais il ne vous donne que le chemin d'accès physique pour l'actuel fichier PHP qui est exécuté.__DIR__
vous obtient le répertoire de la actuellement le fichier exécuté. Alternativement, vous pouvez également utiliserdirname(__FILE__)
$_SERVER['DOCUMENT_ROOT']
obtient le chemin d'accès physique à la racine du site web, par exemple/var/www/example.com/httpdocs
Par exemple, disons que votre site web a la structure de dossier suivante:
Permet de dire
executing.php
est le fichier le est actuellement en cours d'exécution et que vous souhaitez inclurerequired.php
. Vous avez quelques options.Bien sûr, dans l'un de ces exemple, vous pouvez également utiliser
require_once
au lieu derequire
.Utiliser le la magie de la constante
__FICHIER__
dirname(__FILE__) . '/relative/path/to/file.php'
, ou (pour PHP5.3+)__DIR__ . '/relative/path/to/file.php'
__DIR__
. Si vous voulez le chemin complet avec le nom de fichier utiliser__FILE__
.__FILE__
ou__DIR__
obtient l'emplacement du fichier php en cours d'exécution. Pas de/var/www/file.php
. Ce serarequire(__DIR__.'file.php')
ne fonctionne que si elle est dans le même répertoire que le fichier est exigeant le fichier.$_SERVER['DOCUMENT_ROOT']
devrait vous donner le répertoire racine du site web.