Dividere ciclo in più parti

haringk

Nuovo Utente
15 Mar 2010
7
0
0
Salve,

utilizzando uno script per l'elenco dei file in una determinata cartella ricevo, com'è ovvio, un numero di risultati pari al numero dei file nella cartella specificata.

Per motivi che non sto ad elencarvi per non tediarvi, mi si presenta la necessità di dover dividere questo risultato in blocchi da 15 o 20 righe. Con l'aggravante di dover specificare differenti voci tra blocco e blocco.

Cerco di spiegarmi con un esempio:

PHP:
<div class="inizio">
<div class="primo_gruppo">risultati da 001 a 015</div>
<div class="secondo_gruppo">risultati da 016 a 030</div>
<div class="terzo_gruppo">risultati da 031 a 045</div>
....
</div>



Per qualsiasi dubbio inserisco anche lo script che utilizzo per recuperare l'elenco da rielaborare:

PHP:
<?php 

$bn = "./include/galleria_div/bn1/"; // bassa risoluzione - bianco nero
$lr = "./include/galleria_div/lr1/"; // bassa risoluzione - a colori
$hires = "./include/galleria_div/hr1/"; // alta risoluzione
$code = "./include/galleria_div/code1/"; // testo html per il popup


chdir("./include/galleria_div/code1/");
if( !($dp = opendir("./")) )
die("Non riesco a esplorare il contenuto");

while($file = readdir($dp)) {
if(is_file($file))
$lista[] = $file;

}

sort($lista);


foreach($lista as $index => $nome) {

$path_parts = pathinfo($nome);

echo "\n<div class=\"box_img\"><a href=\"" , $code , "", $path_parts['filename'], ".html\"";
echo "rel=\"width:800,height:600\" class=\"advanced\" title=\"I quadri\" ";
echo "onmouseout=\"MM_swapImgRestore()\" onmouseover=\"MM_swapImage('", $path_parts['filename'], "','',";
echo "'" , $lr , "", $path_parts['filename'], ".jpg',1)\"><img src=\"" , $bn , "", $path_parts['filename'], ".jpg\" ";
echo "width=\"110\" height=\"110\" border=\"2\" id=\"", $path_parts['filename'], "\"></a></div>";

} 


?>




Spero di essere stato chiaro e che qualcuno possa aiutarmi.


Grazie.
 

haringk

Nuovo Utente
15 Mar 2010
7
0
0
Grazie per la celere risposta, non lo avevo trovato.

Tornando al discorso di cui sopra, quindi, dovrebbe venir fuori qualcosa come...:

PHP:
<?php 

chdir("./include/galleria_div/code1/");
if( !($dp = opendir("./")) )
die("Non riesco a esplorare il contenuto");

while($file = readdir($dp)) {
if(is_file($file))
$lista[] = $file;

}

sort($lista);


foreach($lista as $index => $nome) {

$path_parts = pathinfo($nome);

if (($nome > 0) && ($nome <=15)) {
echo "<div class=\"primo_gruppo\">da 01 a 15</div>";
} elseif (($nome > 15) && ($nome <=30)) {
echo "<div class=\"secondo_gruppo\">da 16 a 30</div>";
} elseif (($nome > 30) && ($nome <=45)) {
echo "<div class=\"terzo_gruppo\">da 31 a 45</div>";
} elseif ..... {
echo .....; 
}


} 


?>


È corretto?
 

haringk

Nuovo Utente
15 Mar 2010
7
0
0
Povero me! È vero, il valore $nome non è un numero. È il nome del file X all'interno della cartella specificata.
Scusami, ma non ci avevo neanche pensato.
 

haringk

Nuovo Utente
15 Mar 2010
7
0
0
Risolto.


PHP:
<?php 


chdir("./");
if( !($dp = opendir("./")) )
die("Non riesco a esplorare il contenuto");

while($file = readdir($dp)) {
if(is_file($file))
$lista[] = $file;

}

sort($lista);


foreach($lista as $index => $nome) {

	$path_parts = pathinfo($nome);

//	echo $path_parts['filename'] , "<br />\n";

	if (($index > 0) && ($index <= 15)) {
	echo $path_parts['filename'] , "da 01 a 15<br />\n";
	} elseif (($index > 15) && ($index <=30)) {
	echo $path_parts['filename'] , "da 16 a 30<br />\n";
	} elseif (($index > 30) && ($index <=45)) {
	echo $path_parts['filename'] , "da 31 a 45<br />\n";
	} elseif ($index > 45) {
	echo "niente<br />\n"; 
	}

} 


?>




Sbagliavo ad assegnare il valore da "contare".



Grazie mille, MarcoGrazia. Gentilissimo!
 

haringk

Nuovo Utente
15 Mar 2010
7
0
0
Aggiungo, per chi fosse interessato, una specifica per auto-rispondermi al messaggio iniziale.

Per ottenere la personalizzazione dei tag all'inizio ed alla fine dei gruppi basta creare un gradino di UN risultato scalandolo dal gruppo stesso. Prima e dopo, ovviamente.


Probabilmente non è un modo ortodosso per eseguirlo, ma funziona.
 

MarcoGrazia

Utente Attivo
15 Dic 2009
788
16
18
59
Udine
www.stilisticamente.com
Visto che usi almeno il php 5.2 puoi usare glob() ed eliminare quella tortura che era readdir()

PHP:
<?php 
$path = './';
$index = 0;
$ext = 'estensione_del_file';
foreach (array_filter(glob($path.'*'), 'is_file') as $nome) {

    $path_parts = basename($nome, $ext);

    if (($index > 0) && ($index <= 15)) {
         echo $path_parts , "da 01 a 15<br />\n";
    } elseif (($index > 15) && ($index <=30)) {
         echo $path_parts , "da 16 a 30<br />\n";
    } elseif (($index > 30) && ($index <=45)) {
         echo $path_parts , "da 31 a 45<br />\n";
    } elseif ($index > 45) {
         echo "niente<br />\n"; 
    }
    $index++;
} 


?>
Però c'è qualcosa ancora che non mi torna per via dell'implementazione del ciclo. Bo!
 
Discussioni simili
Autore Titolo Forum Risposte Data
camilia Come posso dividere le grandi dimensioni del file PST? Windows e Software 2
gandalf1959 [PHP] Dividere un campo di testo in più campi PHP 9
P [HTML] [PHP] dividere lo schermo in tre colonne HTML e CSS 110
L [WordPress] Dividere articoli in più pagine, problemi SEO? WordPress 2
M Dividere immagine a metà in diagonale Photoshop 1
M Dividere risultati in colonna in base al contenuto PHP 9
alankanz dividere risultati in pagine MySqli PHP 4
Z Dividere settimane PHP 3
M Dividere su piu pagine un articolo lungo prelevato da db. jQuery 0
P Dividere lo schermo in tre colonne HTML e CSS 1
L Dividere risultati per data e pagine diverse PHP 17
G Dividere stringa ed eseguire query PHP 3
P Dividere lo schermo in tre colonne HTML e CSS 6
L Dividere classe in più parti PHP 3
S Dividere una textarea PHP 1
A Dividere array multidimensionale in altri array multidimensionali PHP 9
A dividere il risultato di una Query in più pagine Classic ASP 1
redevilduil dividere la gallery in pagine con php PHP 3
C Dividere un div in due colonne Javascript 2
U E' possibile dividere un' immagine o un background in celle? jQuery 0
M Dividere Stringhe per MySQL PHP 6
E e se volessi dividere le mie pagine? PHP 2
renoir09 software dividere sql su mac Database 1
C dividere un'immagine in più parti Webdesign e Grafica 3
L Dividere campo PHP 2
S dividere un wmv con movie maker Windows e Software 0
A dividere dato 32 bit in 4 byte Programmazione 2
B dividere Home Page in 5 sezioni con CSS HTML e CSS 1
metalgemini dividere in piu colonne il risultato di una query Classic ASP 4
G come dividere la pagina in 2 frame??!! HTML e CSS 5
M Come si fa a dividere un documento in più colonne in dreamweaver Flash 0
I Eecuzione di javascript in ciclo foreach php. PHP 7
W fare la somma di un valore estratto da un ciclo while Classic ASP 0
B [PHP] formula e ciclo PHP 5
M [PHP] Come inserire codice html in un ciclo while PHP 2
T con oop creare un ciclo per una pagina dinamica html con php PHP 3
G [PHP] totale per ogni id di un ciclo PHP 1
P Incrementare nodo in ciclo for-each XML 6
S [PHP] Ciclo foreach su più array PHP 2
M UPDATE non aggiorna db se lo inserisco in un ciclo Database 1
N [PHP] Controllare condizione ciclo While PHP 9
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
N [PHP] Registrare variabili all'interno di un ciclo PHP 3
MattiaBL [PHP] Problema ciclo while PHP 3
V Ciclo for per Pulsante in JavaScript Javascript 7
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
C [PHP] Ciclo for dinamico PHP 14
gandalf1959 [PHP] query all'interno di un ciclo while PHP 3
Z [PHP] ciclo for PHP 9
valvasori [PHP] Problema ciclo for PHP 12

Discussioni simili