Benvenuti su htDOCS, la vetrina web di Alessandro Buzzoni, per saperne di piu' e per i tuoi commenti segui il link





04 Ott 2008 » Email This Post

PHP, individuare la URL corrente

Una comoda tip per chi utilizza php nello scrivere pagine web. Personalmente la sfrutto ogni volta che devo gestire un menu di navigazione in cui si deve "illuminare" il bottone corrispondente alla pagina visualizzata. Un esempio (per capire di cosa parliamo) lo potete vedere sul sito: http://www.ambrazanni.it/
In questo sito, a seconda della sezione in cui il visitatore approda, si illumina di fuxia il bottone relativo.

Per realizzare questo effetto si deve innanzi tutto creare una classe specifica nel proprio foglio di stile, da abbinare al bottone che deve illuminarsi. Tale classe andrà abbinata al bottone che corrisponde alla sezione in cui il visitatore del sito si trova. Per determinare quale pagina il visitatore stia guardando, possiamo semplicemente dire al server di "captare" la URL correntemente visualizzata dal browser.

Il codice per fare questo è il seguente:
<?php
  // stabilisco la url correntemente visualizzata 
  function selfURL() {
   $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
   $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s;
   $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
   return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
   }
  function strleft($s1, $s2) {
   return substr($s1, 0, strpos($s1, $s2));
  }
  // assegno alla variabile $ws_current_url la url correntemente visualizzata
  $ws_current_url= selfURL();
?>

A questo punto abbiamo inserito nella variabile $ws_current_url il percorso URL che il visitatore ha aperto. Possiamo quindi comparare tale variabile con una serie di istruzioni IF e fare così in modo che la pagina mostri certi contenuti oppure altri.

Se ad esempio il visitatore ha cliccato sulla pagina "Contatti" potete usare questo codice:
<a
  <?php
    if ((stristr($ws_current_url, '/contatti') !== FALSE)) {
      echo 'class="current"';
    }
  ?>
  href="/contatti" title="Contatti">Contatti
</a>

Buon divertimento con PHP :-)

• Autore: Aless{a}ndro
• Archiviato in: Web, curiosità e non solo
Tags: , ,

Un Commento pubblicato

  1. 1

    christian dice:

    Salve è possibile adattare questo script per la corrispendenza del link con sh404sef per un ecommerce in virtuemart , in modo da permettermi di aggiungere il pulsante I LIKE?
    Grazie


Lascia un commento


Top