Leggere contenuto di una cartella e relative sottocartelle

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
Buonasera. Utilizzo la funzione glob() per leggere i file in una directory. Ho bisogno però di leggere il contenuto di una cartella con le relative sottocartelle e tirare fuori solo le immagini.
Come posso fare?
grazie a tutti
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
se non ho capito male tu hai es una cartella che contiene delle immagini e delle altre cartelle che a loro volta contengono delle immagini e vuoi estrarre tutte le immagini?
se è così potresti provare prima ad estrrare tutte le sottocartelle
PHP:
<?php
//....
$cart="principale";
$immagini=glob($cart."/*.jpg");//estrai tutte le immagini che hai nella cartella principale
$sotto_cart=glob($cart."/*",GLOB_ONLYDIR);//estrai i nomi delle sottocartelle
//cicli
foreach($sotto_cart as $sc){
	$path=$cart."/".$sc."/";
	$immagini=array_merge($immagini,glob($path."*.jpg"));//estrai le immagini dalle sottocartelle
}
echo "<pre>";
var_dump($immagini);
echo "</pre>";
//...
?>
eventualmento provalo perchè l'ho buttato giù di brutto sensa pensarci molto
 

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
Grazie per la risposta. Ho provato ma non funziona, allora ho trovato questo che funziona:

PHP:
$directory = './foto/gallery';
$it = new RecursiveDirectoryIterator("$directory");
foreach(new RecursiveIteratorIterator($it) as $file)
{
	$items[] = preg_replace("#\\\#", "/", $file);
	
}
sort($items);
foreach($items as $item)
{
	echo $item."<br>";
}

Il problema è che lui mi estrae anche il percorso cosi:

foto/gallery/.
foto/gallery/..
foto/gallery/foto.jpg
...

Sto cercando come fare per non fargli scrivere le prime due righe o comunque ho provato a inserire una condizione che se è presente /. e /.. nella stringa non aggiunge in array ma non funziona.

suggerimenti?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
puoi provare così cercando l'estensione dell'immagine
PHP:
<?php
$directory = './foto/gallery';
$it = new RecursiveDirectoryIterator("$directory");
foreach(new RecursiveIteratorIterator($it) as $file)
{
    if(stripos($file, ".jpg")>0){//poi se hai anche gif e png metti gli or
		$items[] = preg_replace("#\\\#", "/", $file);
    }
}
sort($items);
foreach($items as $item)
{
    echo $item."<br>";
}  
?>
 

lorenzo84

Utente Attivo
22 Lug 2012
239
0
16
Eccomi. Grazie per la risposta. Potrebbero esserci più estensioni e non saprei come gestirlo. Allora ho fatto questa modifica:
PHP:
$directory = './foto/gallery';
$it = new RecursiveDirectoryIterator("$directory");
foreach(new RecursiveIteratorIterator($it) as $file)
{
	$posizione1 = strpos("$file","\.");
	$posizione2 = strpos("$file","\..");
	if(!$posizione1 || !$posizione1)
		$items[] = preg_replace("#\\\#", "/", $file);
}
sort($items);
foreach($items as $item)
{
	echo $item."<br>";
}
in base alla condizione se strpos trova \. o \.. non aggiunge nell'array. Non so se è valida come soluzione ma funziona...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
non funzia
perche avevo fatto un errore io
PHP:
<?php
//....
foreach($sotto_cart as $sc){
	$path=$sc."/";//non dovevo aggiungere il percosro
	var_dump($path);
    $immagini=array_merge($immagini,glob($path."*.jpg"));//estrai le immagini dalle sottocartelle
}
//...
?>
 

giamma

Utente Attivo
4 Mag 2005
111
0
0
e scusate perchè non stampare due cicli foreach?
Si risparmia stress funziona e stampa tranquillamente il contenuto della cartella principale e della sottocartella:
PHP:
foreach(glob('*.jpg') as $img)
	{
	
		echo "Nome del file: " . $img . "<br/>";
 }	
 
foreach(glob('*/*.jpg') as $sot_img)
	{
		echo "Nome del file: " . $sot_img . "<br/>";
	}
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Leggere il contenuto di una cartella e memorizzare il nome file in mysql PHP 1
K Leggere contenuto di una cartella quando viene aperto il file PHP 6
D Leggere i file di una cartella ed il loro contenuto PHP 5
G leggere file txt e stampare con php il contenuto a video PHP 7
G Pec come leggere il contenuto Posta Elettronica 1
felino [Ajax] Leggere in contenuto da un URL esterno Ajax 2
D leggere il contenuto di un file di testo in un file .JS Javascript 11
P Problema: come far leggere unintero dvd da php e memorizzare il suo contenuto ???? PHP 38
W Leggere contenuto pagina web Javascript 1
D PHP leggere cartella di Windows PHP 2
S Leggere dati da API e visualizzarli PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
maxbossi Attenzione alle TRUFFE: Leggere attentamente!!! Annunci servizi di Social Media Marketing 0
J Leggere JSON da Instagram __a=1 PHP 0
L leggere RGB di un pixel dello schermo in java Java 1
felino Script PHP per leggere un file JSON. autenticazione? PHP 4
Q Leggere NFC da web app - web nfc Javascript 0
D [ASP] Leggere Campo decimal MYSQL Classic ASP 1
M leggere con jquery/ajax in una function javascript record di database sql server Javascript 0
P PHP - Leggere una pagina passata con Form e Captcha PHP 0
Drago73 [Java] leggere/scrivere txt server Java 0
C Leggere dati File.XMLcon PHP XML 11
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
I [Javascript] Leggere "var" da file .js esterno (per google map) Javascript 6
W [PHP] Leggere un array un po complicato PHP 3
K Script PHP per leggere array.txt Presentati al Forum 3
H Interpretare e leggere il file log di sfc/scannow. Windows e Software 0
P leggere file .csv con javascript/jquery Javascript 11
V Leggere da db e metodi asincroni:vorrei capire jQuery 8
Monital Leggere un file php contenente dati json PHP 10
napuleone Leggere la scelta radio Javascript 0
Trapano Leggere un file .txt dal fondo PHP 7
Francesco Polese Leggere linea da un file ed eliminarla PHP 2
K leggere codice ean con fotocamera PHP 0
maxbossi Regolamento Regolamento della sezione - leggere ATTENTAMENTE prima di postare IP Cam e Videosorveglianza 0
P leggere dvd e memorizzazione dei dati letti PHP 1
L xmlrpc leggere le risposte. qualcuno mi aiuta? PHP 1
F Leggere file contenuti in cartella e modificarne il nome PHP 3
M Leggere dati da file excel in base al nome del foglio di lavoro PHP 0
napuleone type="file" leggere con js Javascript 3
A leggere la data del client PHP 1
D batch leggere ultima riga e salvarla Programmazione 0
C Leggere variabili esterne ad una classe in php 5.2 PHP 6
P Leggere XML PHP 4
M Leggere file di grandi dimensioni Java 2
M Leggere hard-disk linux su Windows Windows e Software 1
L file. leggere dall'ultima riga alla prima PHP 1
Z [VB.NET] Leggere pagina HTML ed estrarre dati da tabella .NET Framework 1
L [c++] Problema leggere file txt riga per riga C/C++ 0
Trapano [risolto] Leggere da un file txt in ordine inverso PHP 2

Discussioni simili