[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. ok merci beacoup. Je vais tester ce soir.
      mais $_SERVER['PHP_SELF'] sert à quoi alors?
      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. pour pouvoir travailler en local sans chaque fois modifier les liens.
          cela fonctionne comment $_SERVER['PHP_SELF'] ?
          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. 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. 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. 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.