[preg_replace] dynamische url veranderen

Pagina: 1
Acties:

  • LaborGardens
  • Registratie: December 2000
  • Laatst online: 15:11
Ik zit met het volgende probleem waar ik niet uit kom...

mijn menu zit als volgt in elkaar:
HTML:
1
2
3
4
5
6
7
<ul id="navlist">
    <li><a href="index.php?page=home">Home</a></li>
    <li><a href="index.php?page=links">links</a></li>
    <li><a href="#">Item three</a></li>
    <li><a href="#">Item four</a></li>
    <li><a href="#">Item five</a></li>
</ul>

Nu wil ik dmv een preg_replace de huidige pagina in het menu een ander uiterlijk geven. Het zou de hyperlink moeten wegbreken en vervangen door een id in de li.
PHP:
1
2
3
4
5
<?php
    $menu = file_get_contents("menu.htm");
    $menu = preg_replace("|<li><a href=\"" . basename($_SERVER['PHP_SELF']) . "\">(.*)</[^>]+></li>|U", "<li id=\"active\">$1</li>", $menu);
    echo $menu;
?>

Ik krijg het alleen niet aan de praat(ben ook nog php-newbie). Kan het überhaupt wel met dit soort links in je menu? Zo ja, hoe dan? Ik zoek me al de hele middag het apelazerus op google en GoT, maar kan geen antwoord/duidelijkheid vinden.

Verwijderd

Ongeveer zo:

PHP:
1
2
3
<li<?php if ($thisPage=="home") 
      echo " id=\"currentpage\""; ?>>
      <a class="menu" href="/">home</a></li>


Geef in je CSS #currentpage een style en zet boven elke pagina welke pagina het is. Dus bijvoorbeeld op de pagina home zet je bovenaan:

PHP:
1
$thisPage="home";



Nu is de huidige pagina nog wel klikbaar, maar wel met een andere style, maar dat kan je nog veranderen door een simpele 'else' toe te voegen ;).

[ Voor 19% gewijzigd door Verwijderd op 20-09-2006 17:20 ]


  • LaborGardens
  • Registratie: December 2000
  • Laatst online: 15:11
Dat ga ik eens proberen, ziet er al veel simpeler uit dan met replace enz. Thnx!

edit:

Het had nog wat kleine aanpassingen nodig vanwege de rest van m'n code die hier niet stond, maar het is me gelukt _/-\o_

[ Voor 47% gewijzigd door LaborGardens op 20-09-2006 17:35 ]