- Home
- Categorie
- Coding e Sistemistica
- PHP
- impaginare le immagini
-
impaginare le immagini
Ciao a tutti e buona domenica,
mi hanno chiesto di fare una cosa per me nuova,
faccio inserire in una cartella 'Gallery' le immagini
per poi farle visualizzare 10 ogni pagina in ordine decrescente
il tutto senza il db.
Come posso fare?
E' possibile una cosa del genere senza il database?Ciao a tutti da danny.
-
Ciao danny1975,
fai attenzione alla punteggiatura e alle maiuscole...
Cicli normalmente tutte le immagini, e fai l'echo solo per $i che ha valori da 0 a 10 nella prima pgina, da 10 a 20 nella seconda pagina e cosi via.
-
Ciao,
mo ci provo, ma la vedo dura, perchè non lo mai fatta una cosa del genere,
poi ti faccio sapere,
ciao e grazie
-
Ciao, lo sapevo che non riuscivo a farlo da solo, sono arrivato ad un punto e mi sono fermeto. Allora ho fatto 2 cicli for, uno per le righe ed uno per le colonne, all'interno della cartella gallery ho 13 foto,voglio far apparire 12 foto nella pagina 1, mentre la 13esima nella pagina 2
[PHP]
print"
<table border='1' cellpadding='0' cellspacing='0'>";
print"
<tr>";
print"
<td colspan='7'> </td>";
print"
</tr>";
$righe=ceil(9/4);
for($a = 0; $a < $righe; $a++)
{
print"
<tr>";
for($b = 1; $b <= 4; $b++)
{
if(file_exists("public/gallery/" . "$b" . ".jpg"))
{
print"
<td valign='bottom'>
<a href='public/gallery/$b.jpg' rel='lightbox'>
<img src='public/gallery/$b.jpg' width='136 height='102' border='0'>
</a>
</td>";
}
else
{} print" <td width='5'></td>"; } print" </tr>"; print" <tr>"; print" <td colspan='7' height='8'></td>"; print" </tr>"; }
print"
</tr>";
print"
</table>";
[/PHP]
Il primo ciclo mi dice di fare 3 tr
il secondo ciclo mi fa 4 td
il conto fa 12, ma l'intoppo è
1-le immagini che inserisce sono 1-2-3-4 nella prima td, nella seconda td non continua 5-6-7-8, ma ripete 1-2-3-4 e così pure nella terza td
2-come faccio a creare le pagine
3-ma è possibile fare ciò che mi hanno chiesto, cioè mettere le immagini in ordine decrescente
ciao e grazie spero in un vostro aiuto
da danny
-
Ciao a tutti, rieccomi qua
allora...ho aperto qualche libro ed ho visto che prima di iniziare devo
-creare un percorso
-aprire la cartella
-leggere dentro
-stampare i risultati
-chiudere la cartella
vi posto cosa ho combinato ma vi dico subito che succede un macello, immagini che si aprono, altre no, Uninitialized string offset... di tutto e di più
[PHP]
<?php
//creare il percorso
$percorso='gallery';
//aprire la cartella interessata
$cartella=opendir($percorso);
//leggere il contenuto della cartella
while($contenuto=readdir($cartella))
{
for($i=1; $i<=$contenuto; $i++)
{
if($contenuto != '.' && $contenuto != '..')
{
//stampa il contenuto
print"<img src='$percorso/$contenuto*.jpg'><br>";
}
}
}
//chiudiamo la cartella
closedir($cartella);
?>
[/PHP]
La cartella gallery contiene 13 immagini nominate così 1,2,3...13
cominciamo a risolvere questo
poi non vi dico, devo inserirle in ila per 4 per un max di 12 immagini per pagina, quindi devo creare anche le pagine
fosse finita qua, devo anche metterle in ordine decrescente
sto impazzendo, mi aiutato per favore
ciao da danny
-
Prova cosi:
[php]
<?php
$partenza = 0;
$fine = 10;
//creare il percorso
$percorso='gallery';
//aprire la cartella interessata
$cartella=opendir($percorso);
$i = 0;
//leggere il contenuto della cartella
while($contenuto=readdir($cartella))
{
if($contenuto != '.' && $contenuto != '..')
{
if($partenza >= $i && $i<$fine)
//stampa il contenuto
echo "<img src='$percorso/$contenuto'><br>";
$i++;
}
}
//chiudiamo la cartella
closedir($cartella);
?>
[/php]
-
Ciao Thedarkita, ho dovuto studiare un poco
altrimenti non ne uscivo più
ricapitolando, con questo script, spero utile per gli utenti futuri, riesco a visualizzare le immagini, ma tutte in modo orizzontale.
I problemi sono 2
il primo è che devo avere 4 immagini per riga e poi andare a capo
il secondo è quello di creare delle pagine ogni 20 immagini
Penso di non riuscirci da solo è la prima volta che mi trovo in questa situazione, o meglio se dovessi riuscirci ci vorrebbe molto tempo.
Potremmo continuare questo progetto insieme.
Invito anche gli altri utenti del forum a collaborare
Un saluto da danny975[PHP]
<?php
//Nome della cartella
$car = 'public/gallery';
// Opendir è la funzione per aprire la cartella
$handle = opendir($car);
//array
$a_img=array();
// Ciclo la cartella
while (false !== ($files = readdir($handle)))
{
if ($files != '.' && $files != '..' && $files != 'Thumbs.db')
{
$a_img[]=$files;
}
}
print"
<table border='1' cellspacin='0' cellpadding='0'>";
print"
<tr>";
for($i=count($a_img)-1; $i>=0; $i--)
{
print"
<td>";
echo"<img src='public/gallery/$a_img*'><br/>";
print"
</td>";
}
print"
</tr>";
print"
</table>";
?>
[/PHP]
-
Ciao,
prova cosi:
[php]
<?php
$numero = 4;// Nome della cartella
$car = 'public/gallery/';// Opendir è la funzione per aprire la cartella
$handle = opendir($car);// Ciclo la cartella
$i = 0;
echo '<table>';
while (false !== ($files = readdir($handle)))
{
// Stampo i file
if ($files != '.' && $files != '..')
{
if($i==0)
echo'<tr>';
echo '<td><img src="'.$car.$files.'"></td>';if($i==($numero-1)) echo'</tr>'; $i = $i==($numero-1) ? 0 : $i+1; }
}
while($i<=($numero-1))
{
echo '<td> </td>';
$i++;
}
echo '</tr></table>';
?>
[/php]
-
Ciao Thedarkita
va tutto bene, però mi sono perso in questa parte
mi daresti una spiegazione?[php]
if($i==($numero-1))
echo'</tr>';
$i = $i==($numero-1) ? 0 : $i+1;
}
}
while($i<=($numero-1))
{
echo '<td> </td>';
$i++;
}
echo '</tr></table>';//questa tr perchè la chiudi, sopra già l'hai chiusa
[/php]Ah! per le pagine cosa prendo come riferimento
devo usare la funzione ceil come si fa di solito
ciao da danny
e grazie ancora
-
Poichè può accadere di avere ad esempio 15 immagini, volendo avere 10 immagini per colonna, l'ultima riga avrebbe solo 5 colonne e le altre 5 risulterebbero mancanti pertanto inserisce le colonna vuote.
Il tr effettivamente può esserci il caso in cui sia ripetuta, sarebbe da fare cosi:
[php]
<?php
$numero = 4;// Nome della cartella
$car = 'public/gallery/';// Opendir è la funzione per aprire la cartella
$handle = opendir($car);// Ciclo la cartella
$i = 0;
echo '<table>';
while (false !== ($files = readdir($handle)))
{
// Stampo i file
if ($files != '.' && $files != '..')
{
if($i==0)
echo'<tr>';
echo '<td><img src="'.$car.$files.'"></td>';if($i==($numero-1)) echo'</tr>'; $i = $i==($numero-1) ? 0 : $i+1; }
}
if($i<($numero-1))
{
while($i<=($numero-1))
{
echo '<td> </td>';
$i++;
}
echo '</tr>';
}
echo '</table>';
?> [/php]Per le pagine si devi fare come al solito.