Comment puis-je trouver l'URL de base d'une application?
Je voudrais trouver l'url de base de mon application, afin que je puisse automatiquement référence à d'autres fichiers dans mon arborescence de l'application...
Donc donné un fichier config.php dans la base de ma demande, si un fichier dans un sous-répertoire comprend, sait à quoi s'préfixe de l'url.
application/config.php
application/admin/something.php
application/css/style.css
Que http://www.example.com/application/admin/something.php
est accessible, je veux qu'il soit en mesure de savoir que le fichier css est dans $approot/css/style.css
. Dans ce cas, $approot
est "/application
" mais je voudrais savoir si l'application est installée ailleurs.
Je ne suis pas sûr si c'est possible, de nombreuses applications (phpMyAdmin, Squirrelmail, je pense) ont pour définir une variable de config pour commencer. Il serait plus convivial si elle savait.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
J'utilise la suite dans un homebrew cadre... de Mettre cela dans un fichier dans le dossier racine de votre application et simplement l'inclure.
Le code ci-dessus définit deux constantes. ABSPATH contient le chemin absolu de la racine de l'application (système de fichiers local), tandis que URLADDR contient l'adresse URL complète de l'application. C'est mod_rewrite situations.
Vous pouvez trouver l'url de base avec le code suivant:
Court et le meilleur.
Le REQUEST_URI combiné avec dirname() pouvez-vous dire de votre répertoire courant, pertinentes pour le chemin de l'URL:
Donc http://example.com/test/test.php imprime "/test" ou http://example.com/ imprime "/" que vous pouvez utiliser pour générer des liens à d'autres pages par rapport à la voie actuelle.
MODIFIER: viens de réaliser sur la re-lecture de ce que vous demandez peut-être sur le chemin d'accès du disque plutôt le chemin de l'URL. Dans ce cas, vous souhaitez PHP getcwd() fonction de la place:
À moins que vous suivez vous-même, je ne crois pas que cela aurait une définition. Ou plutôt, vous vous demandez PHP suivre quelque chose que vous êtes de manière quelque peu arbitraire de la définition.
Long et à court de il est, si je comprends votre question correctement, je ne crois pas que ce que vous demandez existe, au moins pas comme "de base" PHP; un cadre donné peut fournir une "racine" de l'URL par rapport à une structure de répertoire qui il comprend.
Cela fait-il sens?
Mettre ceci dans votre config.php (qui est dans votre application root dir):
Je pense que vais le faire.
url de la racine de l'application peut être trouvé par
ce code sera de retour l'adresse de l'url de toutes les applications, que ce soit en ligne ou déconnecté du serveur.
Je n'ai pas fait bon de vérifier le bon '/'. Veuillez la modifier pour des barres obliques.
ce fichier doit être placé dans la racine.
exemple :
si
url de l'application :
ce code sera de retour
Grâce
Une solution serait d'utiliser des chemins relatifs pour tout, de cette manière, il n'a pas d'importance où l'application est installée. Par exemple, pour accéder à votre feuille de style, utilisez ceci:
Si vous voulez que le chemin d'accès sur le système de fichiers, vous pouvez utiliser
$_SERVER['DOCUMENT_ROOT']
Si vous voulez juste le chemin d'accès du fichier qui apparaît dans l'URL après le nom du domaine d'utilisation
$_SERVER['REQUEST_URI']
Je n'ai jamais trouvé un moyen de faire en sorte.
Je finis toujours par définition d'une variable de config avec le chemin d'accès au serveur à un niveau au-dessus de la racine web. Ensuite, c'est:
Cela fonctionne comme un charme pour moi, d'où je déployer, avec ou sans règles de réécriture:
$baseDir = " http://'.$_SERVER['HTTP_HOST'].(dirname($_SERVER['SCRIPT_NAME']) != '/' ? dirname($_SERVER["SCRIPT_NAME"]).'/' : '/');
C'est ce que j'utilise dans mon application qui fonctionne très bien, j'utilise aussi un port personnalisé j'ai donc dû le permettre aussi.
Puis-je l'utiliser en tapant le texte suivant...