2010-11-21 24 views
0

Je suis tellement habitué à écrire pour Wordpress que je ne sais pas comment faire une simple déclaration logique en PHP!Comment écrire une instruction if de base pour inclure du code sur la page d'index?

Pour un projet très basique, j'essaie d'inclure une liste non ordonnée sur la page index.php. Voici un exemple de code que je suis en train d'utiliser:

 <?php 
     $index = $_SERVER['REQUEST_URI']; 
     if ($index == "/") { 
     ?><ul id="links"> 
      <li><a href="http://facebook.com" class="facebook">Facebook</a></li> 
      <li><a href="example.php">Example</a></li> 
      <li><a href="test.php">Test</a></li> 
      <li><a href="page.php">Page</a></li> 
     </ul> 
     <?php } ?> 

Je sais que cela a besoin de travailler pour les pages d'index se terminant par l'URI réel de index.php ainsi qu'un suffixe blanc sans index.php. Comment puis-je écrire ce code pour fonctionner correctement?

Répondre

3

Vous devez utiliser la fonction basename() pour obtenir le nom réel de la page comme ceci:

<?php 
    $page = basename($_SERVER['REQUEST_URI']); 
    if ($page == 'index.php' || $page == "/" || $page == '') { 
    ?><ul id="links"> 
     <li><a href="http://facebook.com" class="facebook">Facebook</a></li> 
     <li><a href="example.php">Example</a></li> 
     <li><a href="test.php">Test</a></li> 
     <li><a href="page.php">Page</a></li> 
    </ul> 
    <?php } ?> 
+0

Nice, cela fonctionne très bien lorsque la page se termine par index.php. Il ne semble pas, cependant, fonctionner correctement avec seulement une barre oblique. J'ai copié et collé votre meilleur code PHP sur le mien, rendu les citations cohérentes, mais je ne reçois pas le résultat correct avec la barre oblique finale. – micah

+0

qu'est-ce que $ page égale quand vous var_dump? –

+0

Hey Mark, j'ai ajouté var_dump ci-dessous la déclaration de la variable au code PHP sur la page d'index. Il crache le nom du sous-répertoire avant la barre oblique finale (je suis dans un sous-répertoire de ce projet avant sa mise en ligne). Alors maintenant je comprends pourquoi il ne montre pas les boutons mais je ne sais pas comment résoudre le problème! – micah

0

Il fonctionne si vous utilisez SCRIPT_NAME avec les barres obliques ci-dessous.

<?php 
    $page = basename($_SERVER['SCRIPT_NAME']); 
    if ($page == 'index.php' || $page == "/" || $page == '') 
    { ?> 
    Hi This should show up. 
    <?php }?>