- Home
- Categorie
- Coding e Sistemistica
- Coding
- Immagine random da una cartella
-
Immagine random da una cartella
Ciao raga,
sto cercando da giorni e giorni uno script per immagini random che vada a pescarmi una foto a caso da quelle contenute in una determinata cartella.
Fra tutti quelli in circolazione non ho trovato nulla che fa a caso mio perchè oltre alla foto vorrei che lo script mostrasse accanto ad essa anche il nome del file (senza estensione).
ES: Se mi prende a random la foto cartella/Pippo Palla.jpg vorrei quindi che venisse visualizzato anche Pippo Palla.
Avete idee particolari?
Grazie
-
Ciao Cerbero,
prova cosi:
[php]
<?php
$car = 'cartella/';
$handle = opendir($car);
while (false !== ($files = readdir($handle)))
if ($files != '.' && $files != '..')
echo '<img src="'.$car.$files.'">'.substr($files, 0, -4);.'<br />';?>
[/php]
-
Bene, appare quindi il titolo ed ho modificato lo script in modo da aggiungervi anche un link.
L'unico problema è che non funziona il random perchè mi estrapola tutte le immagini presenti in quella cartella... cosa devo aggiungervi per farne pescare una sola?
Grazie
-
Lo riporto per come l' ho cambiato (c'era anche un ";" in più) così magari ti è più semplice modificarlo per aggiungere la funzione random (che adesso invece visualizza a caso sì, ma tutte le immagini presenti nella cartella mentre a me ne serve una sola).
<?php
$car = 'biografie/';
$handle = opendir($car);
while (false !== ($files = readdir($handle)))
if ($files != '.' && $files != '..')
echo '<img src="'.$car.$files.'"><br /><a href="/filmografia/'.substr($files, 0, -4).'.html">'.substr($files, 0, -4).'</a><br />';
?>
-
Errore mio.
Prova cosi:
[php]
<?php
$car = 'biografie/';
$handle = opendir($car);
$a = array();
while (false !== ($files = readdir($handle)))
if ($files != '.' && $files != '..')
$a[] = '<img src="'.$car.$files.'"><br /><a href="/filmografia/'.substr($files, 0, -4).'.html">'.substr($files, 0, -4).'</a><br />';
shuffle($a);
echo $a[0];
?>
[/php]
-
Spero che tu non abbia troppe immagini in quella cartella, se superi le mille penserei ad una soluzione diversa, tieni conto che usare il filesystem rallenta le pagine web.
-
x Thedarkita:
Grazie mille, funziona che è una meraviglia!
Scusa se ti rompo ancora ma non potresti aiutarmi anche per questo mio problema: giorgiotave.it/forum/php-mysql/127772-select-multiplo.html ?x Artechbrand:
Credo che diventeranno almeno un 5000 col passare del tempo.
Il problema è che il sistema deve basarsi proprio sui nomi dei file perchè segue una variabile di vbulletin.
Di quale soluzione parli?
-
Potresti gestire una tabella DB, magari raccogliendo o aggiornando i nomi dei files una sola volta a giorno e scrivendoli nel database, a quel punto per estrarre un nome casuale non devi rileggere tutta la directory.
-
Uhm, ora che ci penso, se volessi estrapolare un file (e nome) una volta sola al giorno cosa dovrei fare? Escluderei per il momento il db a meno che qualcuno non sappia guidarmi passo per passo...