Tutorial per link dinamici

Gli argomenti di questa pagina

  • URL dinamici
  • Creazione dinamica di LINK e creazione LINK dinamici
  • Creazione dinamica di LINK
  • Creazione di LINK dinamici
  • Esempio pratico per creare un link dinamico

URL dinamici

Possiamo partire da questo semplice URL

<a href="pagina.html">Clicca qui</a>

Se a questo URL aggiungiamo uno o più parametri tramite una QUERY_STRING otteniamo una prima bozza di quel che rappresenta un URL dinamico. La QUERY_STRING è la stringa attraverso la quale si passano ad uno script lato-server (PHP, appunto) informazioni che esso utilizzerà durante l'elaborazione. Inizia con un punto interrogatico (?) seguito da una prima variabile e, se le variabili sono più di uno, queste altre sono concatenate alla prima tramite una e commerciale (&).
Una pagina dinamica restituisce differenti informazioni dipendenti dai parametri inviati dalla QUERY_STRING oltre che dalla data, l'ora, l'utente e molti altri fattori.
Questo qui sotto è un piccolo esempio su come trasformare una pagina statica in pagina dinamica.

<a href="pagina.html?var1=test&var2=valore">Clicca qui</a>

Unico problema che URL di questo genere, fino a qualche tempo fa, era un limite per l'indicizzazione delle pagine da parte dei crawler. Ma anche se da qualche anno a questa parte Google ha annunciato il completo supporto ai parametri in querystring, è buona norma seguire alcune semplici regole:

  • Non passare identificativi di sessione in querystring.
  • Limitare il numero di parametri in QUERY_STRING.

Creazione dinamica di LINK e creazione LINK dinamici

A questo punto (per eliminare ogni dubbio) c'è da fare una distinzione tra:
creare i link in maniera dinamica
creazione di link dinamici

Un link creato in maniera dinamica è ben differente da un link dinamico.

Nota sugli esempi sottostanti: i link apriranno pagine di prova con target="_blank", quindi possono essere testati tranquillamente

Creazione dinamica di LINK

Questo è un esempio di creazione dinamica di LINK.
Nel breve codice che segue, stabilita la cartella di lettura ed il pattern comprensivo di estensione, leggo i files da linkare usando la funzione glob().
I files letti vengono messi in una matrice.
Fatto questo la matrice viene passa in rassegna in un ciclo e si creano i classici link.
I link cosi creati non hanno nulla di particolare per cui possono essere dichiarati normali link statici.

1
2
3
4
5
6
7
8
<?php
$folder 
"link/sub_folder/";
$ext "*.php";
$array_file glob($folder.$ext);
for(
$i=0$i count($array_file); $i++) {
    echo 
"<a href=\"".$array_file[$i]."\" target=\"_blank\">".$array_file[$i]."</a><br />\n";
}
?>

 

Questi i Markup HTML generati
<a href="link/sub_folder/pagina1.php" target="_blank">link/sub_folder/pagina1.php</a>
<a href="link/sub_folder/pagina2.php" target="_blank">link/sub_folder/pagina2.php</a>
<a href="link/sub_folder/pagina3.php" target="_blank">link/sub_folder/pagina3.php</a>
<a href="link/sub_folder/pagina4.php" target="_blank">link/sub_folder/pagina4.php</a>
che producono questi link
link/sub_folder/pagina1.php
link/sub_folder/pagina2.php
link/sub_folder/pagina3.php
link/sub_folder/pagina4.php

 

Creazione di LINK dinamici

Differente è la creazione di LINK dinamici. Questi prevedono una QUERY_STRING a seguito in grado di passare dei paramtri in base ai quali la pagina chiamata possa fare delle scelte di comportamento.
Questo che segue è un probabile esempio di come creare dei link dinamici anche in maniera dinamica (ovviamente è possibile creare LINK dinamici manualmente, come mostrato nel secondo esempio in cima alla pagina.

1
2
3
4
5
6
7
8
9
10
<?php
$folder 
"link/sub_folder/";
$ext "*.php";
$val_1 "settore1";
$val_2 "num_rec";
$array_file glob($folder.$ext);
for(
$i=0$i count($array_file); $i++) {
    echo 
"<a href=\"".$array_file[$i]."?val_1=".$val_1."&amp;val_2=".$val_2."\" target=\"_blank\">".$array_file[$i]."</a><br />\n";
}
?>

 

Questi i Markup HTML generati
<a href="link/sub_folder/pagina1.php?val_1=settore1&amp;val_2=5" target="_blank">link/sub_folder/pagina1.php</a>
<a href="link/sub_folder/pagina2.php?val_1=settore1&amp;val_2=5" target="_blank">link/sub_folder/pagina2.php</a>
<a href="link/sub_folder/pagina3.php?val_1=settore1&amp;val_2=5" target="_blank">link/sub_folder/pagina3.php</a>
<a href="link/sub_folder/pagina4.php?val_1=settore1&amp;val_2=5" target="_blank">link/sub_folder/pagina4.php</a>
che producono questi link
link/sub_folder/pagina1.php
link/sub_folder/pagina2.php
link/sub_folder/pagina3.php
link/sub_folder/pagina4.php

 

Esempio pratico per creare un link dinamico

Questo che segue potrebbe essere un probabile codice che crea dei link dinamici in maniera dinamica.
In questo codice possiamo osservare questi passi:

  • Le prime 4 righe provvedono ad inizializzare 4 variabili che ci servono
  • la riga 6, tramite la funzione glob() ed aiutati dal pattern vengono prelevati i soli files che ci interessano, leggendoli nella cartella indicata, e memorizzati nella matrice
  • Alla riga 7 giungiamo finalmente al ciclo che legge i files memorizzati nella matrice
  • Le righe 8 - 11 prelevano la stringa che si trova nel tag HTML <title>...</title> (ci servirà per la didascalia che metteremo nel link)
  • la riga 12 crea il Link usando:
    • il nome del file di turno nel ciclo per l'attributo href
    • passando quindi alla QUERY_STRING col punto interrogativo (?) messo subito dopo il nome del file, si aggiunge il valore per il settore, quindi, eseguendo la concatenazione con la e commerciale (&), si aggiunge anche il valore per il prefisso.
    • Usciti dalla prima parte del link, prima della sua definitiva chiusura a fine riga, si aggiunge la didascalia rappresentata, in questo caso, dal titolo della pagina che andremo ad aprire.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$folder 
"link/sub_folder/";
$pat "*.php";
$val_1 $_REQUEST['settore'];
$val_2 $pref;
$array_file glob($folder.$ext);
for(
$i=0$i count($array_file); $i++) {
    
$current file_get_contents($array_file[$i]);
    
$pattern "(<title>(.*?)</title>)";
    
preg_match($pattern$current$result_1);
    
$value $result_1[1];
    echo 
"<a href=\"".$array_file[$i]."?sett_current=".$val_1."&amp;pref_current=".$val_2."\" target=\"_blank\">Vai a ".$value."</a><br />\n";
}
?>

 

Questi i Markup HTML generati
<a href="link/sub_folder/pagina1.php?sett_current=lab_php&amp;pref_current=lin" target="_blank">Vai a Matrici</a>
<a href="link/sub_folder/pagina2.php?sett_current=lab_php&amp;pref_current=lin" target="_blank">Vai a Variabili</a>
<a href="link/sub_folder/pagina3.php?sett_current=lab_php&amp;pref_current=lin" target="_blank">Vai a Gestione magazzino</a>
<a href="link/sub_folder/pagina4.php?sett_current=lab_php&amp;pref_current=lin" target="_blank">Vai a Gestione vendite</a>
che producono questi link
Vai a Matrici
Vai a Variabili
Vai a Gestione magazzino
Vai a Gestione vendite

Fin qui la parte più semplice. Ora, nella pagina seguente, passeremo alla parte che ci sta a cuore: evidenziare e mantenere evidenziati i link che stiamo usando.

 

 



settore tecnico il sito di lorettabweb il Forum di sostegno
il forum il forum il forum