IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction pour récupérer URL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de GarGamel55
    Profil pro
    Inscrit en
    Août 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 154
    Par défaut Fonction pour récupérer URL
    Bonjour,

    J'essaie de créer une fonction qui me permettrait de récupérer le nom de la page affichée, puis via des conditions d'afficher ou non un lien dans un menu.

    Le début de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function link($url) {
        if (strpos($_SERVER['PHP_SELF'], $url)===false) {
          echo '';
        } else {
          echo '<a href="[nom de la page].html">';
        }
      }
    En suite j'appelle ma fonction dans mon menu ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <ul>
      <li ><?php link('mapage1') ?><span>Page1</span></a></li>
      <li ><?php link('mapage2') ?><span>Page2</span></a></li>
      <li ><?php link('mapage3') ?><span>Page3</span></a></li>
     </ul>
    Le but est que lorsque la page est affichée, son lien ne s'affiche pas dans le menu, mais celui des autres url doivent s'afficher

    Mais là j'obtiens logiquement l'inverse de ce que je voudrais avoir , mais je n'arrive pas à faire le contraire

    Merci d'avance

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    pcq ta condition est logiquement inverse à ce que tu voudrais avoir ^^

    en Francais ça donne :

    SI je trouve ma $page dans mon $url
    ALORS il ne doit PAS y avoir de lien

    Si je trouve PAS ma $page dans mon $url
    ALORS c'est que je ne suis pas sur la page de ce lien, et donc je dois afficher le lien pour y conduire
    en code, ben c'est forcément l'inverse de ce que t'as écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (strpos($_SERVER['PHP_SELF'], $url)===false) { // si y'a pas maPage dans l'url
          echo '<a href="[nom de la page].html">'; // je crée le lien
        } else { // sinon
          echo ''; // je le crée pas
        }
    PS : ton HTML écrit comme ça n'est pas correct... t'auras des balises fermantes </a> alors que tu n'auras pas les ouvrantes

  3. #3
    Membre confirmé Avatar de GarGamel55
    Profil pro
    Inscrit en
    Août 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 154
    Par défaut
    Salut,

    Je savais que c'était à l'envers, mais j'obtenais des parses error (un oubli de }), alors j'ai préféré mettre le code inverse pour illustré mes propos

    Par contre mon code html est bon, puisque j'écris ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href='$url.html'>";
    Merci d'avoir pris le temps de me répondre
    c'est réglé

    Edit : @midnight : merci à toi aussi, c'était une autre approche effectivement

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Citation Envoyé par GarGamel55 Voir le message
    Par contre mon code html est bon, puisque j'écris ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href='$url.html'>";

    ouaip, tout à fait d'accord ton code est bon... qd t'as un lien

    Regarde ta source, tu devrais avoir quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <ul>
        <li><a href="page1.html">page 1</a></li>
        <li>page 2</a></li> // page en cours 
        <li><a href="page3.html">page 3</a></li>
    </ul>

  5. #5
    Membre confirmé Avatar de GarGamel55
    Profil pro
    Inscrit en
    Août 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 154
    Par défaut
    Ah oui zut, j'avais pas fais gaffe à ça

    Bah je vais créer une fonction rien que pour ça

    Merci

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Citation Envoyé par GarGamel55 Voir le message
    Ah oui zut, j'avait pas fais gaffe à ça

    euh tu as une soluce ?
    yep

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php
    // Definition de la fonction
    function link($url, $title = "") {
    	$return = "";
    	$linkName = (empty($title)) ? $url : $title; // Si on a pas indiqué de titre, on affichera simplement le nom de la page ($url)
     
    	if (preg_match("/".$url."/", $_SERVER['PHP_SELF'])) {
    		$return = $linkName;
    	} else {
    		$return = '<a href="'.$url.'.html">'.$linkName.'</a>';
    	}
    	return $return;
    }
     
    // Utilisation
    // ATTENTION DE FAIRE UN echo() DE LA FONCTION !!
    ?>
    <ul>
    <li><?php echo link('maPage1', 'Un lien'); ?></li>
    <li><?php echo link('maPage2', 'La page en cours !'); ?></li>
    <li><?php echo link('maPage3'); ?></li>
    </ul>

    donnera :

    Code source HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ul>
    <li><a href="maPage1.html">Un lien</a></li>
    <li>La page en cours !</li>
    <li><a href="maPage3.html">maPage3</a></li>
    </ul>

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 163
    Par défaut
    Bonjour, j'aurais fait ça comme ça ...
    Fichier d'énumération du menu / menu.html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <html> 
      <ul>
      <li ><a href="mapage1.html">Page1</a></li>
      <li ><a href="mapage2.html">Page2</a></li>
      <li ><a href="mapage3.html">Page3</a></li>
     </ul>
     + lien css indiquant les {span} et {font} {a over} etc...
    </html>
    Page de réception de l'énumération du menu (à réceptionner dans array, div ou table) / ma_pagedereception.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    include("menu.html");
    ?>
    Mais j'ai peut être pas bien compris ta chaine ou ce que tu veux faire, dans ce cas désolé...
    trop tard, posté, j'avais pas vu que tu avais déjà une réponse sûrement mieux que la mienne... Désolé pour intervention, A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction pour récupérer nom d'un fichier
    Par fabsb dans le forum Langage
    Réponses: 2
    Dernier message: 03/05/2009, 14h40
  2. Comment appeller une fonction pour récupérer 2 ou + de valeurs
    Par tibofo dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 28/01/2009, 07h14
  3. fonction pour récupérer le PageRank
    Par temperature dans le forum Langage
    Réponses: 2
    Dernier message: 23/04/2008, 15h38
  4. Fonction pour récupérer le flv de dailymotion
    Par barthmania dans le forum Langage
    Réponses: 3
    Dernier message: 25/07/2007, 13h57
  5. fonction pour récupérer des données xml
    Par jeff29 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/06/2006, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo