Obtenir l'URL de la racine d'un site web PHP

Je suis actuellement en train de travailler sur un projet PHP et je suis à la recherche d'un moyen pour obtenir l'URL de la racine du site, j'ai un fichier de configuration à la racine donc je pense que pour l'aide que figure le "URL de base." Je suis à la recherche d'un moyen de le faire de manière dynamique afin que je puisse localiser l'URL de la racine du site, c'est à dire http://domain.com/my_app/. Je fais de mon mieux pour éviter d'utiliser des chemins relatifs et j'utilise PHP pour générer les Url pour ce que je suis en utilisant. Par exemple, j'utilise PHP pour générer le code CSS et le code CSS lien vers les images donc je voudrais obtenir une URL absolue dans ici, au lieu d'un chemin d'accès relatif.

my_app/
    admin/
        resources/
            css/
                admin-css.php
            imgs/
                login.png
    resources/
        css/
            css.php
        imgs/
            my-image.png
            shared-image.png
    config.php

Dans mon resources/css/css.php fichier, je cherche à obtenir la "URL de base", donc je peux générer une URL absolue à la imgs dossier comme http://domain.com/resources/imgs/my-image.png mais actuellement je suis http://domain.com/resources/css/imgs/my-image.png depuis le définit en dessous de chercher à obtenir le répertoire des chargés de fichier PHP, pas inclus. Je voudrais aussi partager des images entre les dossiers (c'est à dire accéder à la shared-image.png fichier à partir de la admin dossier) afin d'obtenir l'URL de base, l'idéal serait de générer des liens. La raison pour laquelle je l'en évitant les chemins relatifs est parce que j'ai une fonction qui crée une URL, createURL(), afin que je puisse obtenir tous les Url de travail sans avoir à coder quoi que ce soit.

<?php
DEFINE('HTTP_TYPE', $_SERVER['HTTP_X_FORWARDED_PROTO']);
DEFINE('HTTP_ROOT', $_SERVER['HTTP_HOST']);
DEFINE('HTTP_FOLDER', dirname($_SERVER['PHP_SELF']) . '/');
DEFINE('BASE_URL', HTTP_TYPE . "://" . HTTP_ROOT . HTTP_FOLDER);

function createURL($pathFromRoot)
{
    return BASE_URL . $pathFromRoot;
}

Tous ces définit sont situés dans mon fichier de configuration, donc je pense que la meilleure façon de le faire est d'entrer l'URL du fichier de configuration (http://domain.com/my_app/config.php) et de la bande de la "config.php." Gardez à l'esprit, le site web pourrait être organisé plus profondément dans une structure de dossier http://domain.com/my_app/another/folder/config.php ou pas de sous-dossiers http://domain.com/config.php.

Est-ce possible, si oui, comment peut-il être fait? Ou est-il une autre approche que je devrais suivre?

L'URL sur le côté client, ou le chemin d'accès sur le serveur? (Notez également que HTTP_X_FORWARDED_PROTO n'est installé que si le client a envoyé le X-Forwarded-Proto en-tête, ce qui n'est pas toujours le cas.)
Pas clair, vous êtes en resources/css et espérer obtenir my_app/ ou vous êtes dans mon application, y compris un fichier dans resources/css et obtenir ce?
Tu ne peux pas analyser la partie de l'URL que vous voulez? Vous prenez votre BASE_URL et seulement split, où il est le problème?
côté client, l'URL @lampwins je suis dans le resources/css répertoire et que vous souhaitez obtenir my_app/, j'ai édité ma question. @MichaelVilleneuve le truc c'est que je ne savent pas forcément ce qui serait faux, je n'ai pas coder en dur rien
Vous ne savez pas ce n'est pas bon, mais savez-vous quelle partie est la bonne? Si oui, j'ai reçu votre réponse

OriginalL'auteur allejo | 2013-11-01