risolto con questo codice:
editato,risolti 2 problemi
il numero dei file era errato e non veniva printato un </tr> finale se il numero dei file era dispari
Codice PHP:
<table id="avatars" border="0" style="width: 70%">
<?php
$dir_num = 0;
$numero_totale = 0;
$dir = "downloads/avatars/";
###conta il numero dei file nella cartella selezionata
if ($handle_ultimo = opendir("$dir")) {
while (false !== ($file_ultimo = readdir($handle_ultimo))) {
if ($file_ultimo != "." && $file_ultimo != "..") {
$numero_totale++;
}
}
closedir($handle_ultimo);
}
####
#Apre la directory $dir
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != "..") {
if ((($dir_num % 2)==0) OR $dir_num == 0) {
print " <tr> ";
}
echo "<td><a class=\"a_big\" href=\"msn_avatars.php?cat=$file\">$file ";
##Se il file aperto è una cartella la esplora
##aumentando $numero a seconda del numero dei file
if (is_dir("$dir".$file)) {
if ($handle = opendir("$dir".$file)) {
while (false !== ($file2 = readdir($handle))) {
if ($file2 != "." && $file2 != "..") {
$numero++;
}
}
closedir($handle);
}
}
##
print "(".$numero.")</a></td>\n ";
$numero = 0;
$dir_num++;
if ((($dir_num % 2)==0) AND $dir_num != 0) {
print " </tr> ";
}
#
elseif ((($dir_num % 2)!=0) AND $dir_num == $numero_totale) {
print "</tr>\n";
}
#
}
}
closedir($dh);
}
}
?>
</table>