[PHP] chemin relatif / absolu

Résolu
Bonjour,

J'aimerais savoir s'il est possible de transformer un lien absolu en relatif.
par exemple pour mon menu, j'aimerais enlever le "http://www.blizer.net" et ne laisser que "../" si nécessaire.

pour le moment, j'utilise les liens absolu pour mon menu car il doit être accessible partout sur mon site.
est t'il possible de mettre par exemple :
<?php
echo '<a href="'.fonction php.'/dossier1/page1.php">Lien 1</a>


remplacer fonction php par un code qui me permettra donc d'aller sur la bonne page en étant n'importe où sur mon site.

merci.
--
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)

10 réponses

  1. $_SERVER['PHP_SELF'] :
    Le nom du fichier du script en cours d'exécution, par rapport à la racine web. Par exemple, $_SERVER['PHP_SELF'] dans le script situé à l'adresse http://www.monsite.com/test.php/foo.bar sera /test.php/foo.bar . La constante __FILE__ contient le chemin complet ainsi que le nom du fichier (i.e. inclut) courant.

    J'ai copié-collé ça depuis le manuel de référence du PHP. Faudrait aller y jeter un coup d'oeil de temps en temps, ça fait partie des choses fondamentales du PHP.
    http://www.php.net/manual/fr/reserved.variables.server.php
    1. pour pouvoir travailler en local sans chaque fois modifier les liens.
      Pour ça, tu as _SERVER["HTTP_HOST"] qui te donne la racine de ton site. Tu n'as plus qu'à faire
      'http://' . _SERVER["HTTP_HOST"]. '/home.php?page=accueil'
      etc...
      1. Le but du php étant de permettre les trucs dynamique je dirais: oui c'est possible. Le hic c'est que je pige rien à ton explication alors dur dur de t'aider.

        Peux-tu retenter l'explication (et s'il faut, met les chemins complets des fichiers pour illustrer ton problème) et on verra.
        1. Tu peu mettre des variables dans un lien oui , après ton histoire d'aller sur n'importe quel page a partir d'une autre ,tu peu mettre toutes pages dans un même dossier...

           echo '<a href="index.php?page='.$tavariable.'">' . $tavariable . '</a> ';
          

          1. ok je vais donner un exemple concret
            non Chupachups23, ce n'est pas ce que je veux dire.

            j'ai mon menu :
            <li><a href="http://www.blizer.net/home.php?page=accueil">Accueil</a></li>
            <li><a href="http://www.blizer.net/series/index.php?page=serie">Les séries</a></li>
            <li><a href="http://www.blizer.net/chat/index.php?page=chat">Shoutbox</a></li>
            <li><a href="http://www.blizer.net/livre/index.php?page=livre">Livre d\'or</a></li>

            vu que le menu est accessible partout, je suis obligé de mettre un lien absolu.
            ce que j'aimerais c'est enlever le "http://www.blizer.net".
            Pour avoir un chamin relatif dynamique.
            donc si je suis sur le root, mon menu sera :
            <li><a href="home.php?page=accueil">Accueil</a></li>
            <li><a href="series/index.php?page=serie">Les séries</a></li>
            <li><a href="chat/index.php?page=chat">Shoutbox</a></li>
            <li><a href="livre/index.php?page=livre">Livre d'or</a></li>

            si je suis par exemple sur le livre d'or, le menu sera :
            <li><a href="../home.php?page=accueil">Accueil</a></li>
            <li><a href="../../series/index.php?page=serie">Les séries</a></li>
            <li><a href="../chat/index.php?page=chat">Shoutbox</a></li>
            <li><a href="../livre/index.php?page=livre">Livre d'or</a></li>


            donc comment faire pour avoir un lien relatif dynamique?

            J'espère que j'ai bien expmiqué maintenant.
            1. Bonjour

              C'est sûrement faisable en te basant sur $_SERVER['PHP_SELF']. Par contre l'intérêt m'échappe totalement. Par curiosité, pourquoi ne veux-tu pas de liens absolus ?
              1. pour pouvoir travailler en local sans chaque fois modifier les liens.
                cela fonctionne comment $_SERVER['PHP_SELF'] ?
                1. ok merci beacoup. Je vais tester ce soir.
                  mais $_SERVER['PHP_SELF'] sert à quoi alors?