PHP: Obtenir le chemin absolu à partir de l'URL absolue
J'ai un chemin absolu d'un fichier, il Est un moyen pour obtenir le fichier chemin d'accès absolu
http://domainname/rootfolder/filename.php
et je veux obtenir quelque chose comme
/home/domainname/public_html/foldername/filename.php
- Êtes-vous sûr de ne pas confondre
rootfolder
etfoldername
dans les exemples? - comment pouvez-Vous en même temps et n'ont pas de chemin d'accès absolu? Vous devriez vérifier dirname(), la fonction realpath() les fonctions et les FICHIER constant...
- dirname() et la fonction realpath exige que le script et le chemin d'accès doit être dans le même serveur, mais j'ai, sur les différents serveurs
- zerkms, ils sont les mêmes choses, je veux dire le nom du dossier ou dirname
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
parse_url
function pour obtenir la partie locale de l'adresse URL.La conversion que dans un chemin de fichier nécessite alors que vous savez où le document racine du serveur web. Si c'est le même serveur que celui de la page est en cours d'exécution, alors vous pouvez généralement obtenir que de
$_SERVER['DOCUMENT_ROOT']
.Il a également dépend de l'existence, rien n'empêche l'URL de ne pas être un mapping direct sur un système de fichiers (tels que le mod_rewrite, mod_alias, Uri d'être acheminé via un framework MVC, etc). Par exemple, pour un système que je travaille en ce moment, si vous avez été frappé http://example.com/blog/2012/01/01/ ensuite les fichiers concernés serait /home/utilisateur/rappel/script/recall.psgi et /home/utilisateur/rappel/root/blog/jour.tt mais le DocumentRoot serait /home/utilisateur/rappel/htdocs/)
C'est le moyen le plus facile:
Que vais imprimer vous le chemin d'accès complet.
Documentation:
parse_url
DOCUMENT_ROOT
dirname
$_SERVER['CONTEXT_DOCUMENT_ROOT']
et retirer le~user
partie de l'url.Essayer
$_SERVER['DOCUMENT_ROOT']
. En supposant une URL commeet le fichier de localisation sur le serveur
essayer
cela peut vous aider.