Basta vedere l'esempio della funzione while():
Codice PHP:
$i = 1;
while ($i <= 10)
{
echo $i . ' - ';
$i++;
}
Avrai come risultato:
Codice:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 -
Questo per farti capire che, come dice alessandro, non c'è bisogno di usare unset(), ma basta cambiare il valore.
Dovresti postare lo script intero che utilizzo in modo da poterti consigliare eventualmente una soluzione migliore
Se è querllo postato su avevi anche due errori di sintassi, mancavano due punti per concatenare la stringa. Poi ti sfido a capirci qualcosa in quel codice, non ha indentazione, usi solo le ", anche dove non necessario, e sei pieno di escape! Poi non capisco la funzione uninclude(), non esiste
Questo è il codice migliorato:
Codice PHP:
$dir = $_GET['dir']; // prendo la cartella
if ($dircart = opendir($dir)) // apro la cartella
{
while ($file = readdir($dircart))
{
if (!($file == ".") && !($file == ".."))
{
$filen = basename($file, ".jpg"); // levo l'estensione
include("$filen.txt"); // includo
echo '<img src="' . $file . '"><span>Nome: ' . $name . '. <br />Descriz: ' . $desc . '.<br />Autore: ' . $author . '.<br />Data: ' . $date . '.</span>'; // stampo le informazioni
// uninclude("$filen.txt");
}
}
closedir($dircart);
}
E tutto quello che hai scritto, si potrebbe fare in meno righe di codice:
Codice PHP:
$dir = $_GET['dir']; //prendo la cartella
if ($dir && !substr($dir, 0, 1) == '/')
{
$dir = $dir . '/';
}
if (file_exists($dir) && is_dir($dir))
{
foreach (glob($dir . "*.jpg") as $filename)
{
$file = basename($filename, '.jpg'); // levo l'estensione
include("$filen.txt"); // includo
echo '<img src="' . $file . '"><span>Nome: ' . $name . '. <br />Descriz: ' . $desc . '.<br />Autore: ' . $author . '.<br />Data: ' . $date . '.</span>';
}
}