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
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
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.
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>";
}
?>
<?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
}
//...
?>
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/>";
}