Autor Zpráva
lukasik
Profil
Mám fci, která projde adresář a vypíše obsah jeho složek do tabulky a jeho 1. jpg vrátí jako obrázek
Potřebuji vyřešit to, aby když nenajde jpg v 1. podsložce aby hledal v 2. Toho se snažim docílit
    for($i=2;$i<sizeof($files);$i++) { 
        if(is_dir($path."/".$files[$i])) {
           $found++;
           if($found==$count) {return getFirstImg($path.$files[$i]);}
        }

ale jaksi to nefunguje.

Nějaké nápady?
function getDirContent($path) {
    global $count;
    $return = "<table>";
    $files = scandir($path);
    for($i=2;$i<sizeof($files);$i++) {
        if(is_dir($path."/".$files[$i])) {
            $return .= "<td><img src='".getFirstImg($path."/".$files[$i])."' width='100'></td>";
            $count = 0;
        }
    }
    $return .= "</table>";
    return $return;
}

function getFirstImg($path) {
    global $count;
    $count++;
    $files = scandir($path);
    for($i=2;$i<sizeof($files);$i++) {
       $type = explode(".",$files[$i]);
       if($type[1] == "jpg") {
             $return = $path."/".$type[0].".".$type[1];
             return $return;
        }
        
    }
    return getDir($path."/".$files[$i]);
}

function getDir($path) {
    global $count;
    $files = scandir($path);
    $found = 0;
    for($i=2;$i<sizeof($files);$i++) { 
        if(is_dir($path."/".$files[$i])) {
           $found++;
           if($found==$count) {return getFirstImg($path.$files[$i]);}
        }
    }
}
whoami
Profil
Ted sem ti sesmolil jednoduchý kód, který ti vrátí obsah obrazku ve vsech podadresarih adresare a primo v nem ( $root = dirname(__FILE__).'/images'; ).

<?php
	
	function mapOfFolderToArray ( $root = '.' ) {
		$fd = glob($root.'/*', GLOB_ONLYDIR);
		foreach ( $fd as $val ) {
			$folders[] = $val;
			if ( is_dir($val) ) {
				foreach ( mapOfFolderToArray($val) as $subVal ) {
					$folders[] = $subVal;
				}
			}
		}
		if ( !in_array($root, $folders) ) {
			$folders[] = $root;
		}
		$folders = array_unique($folders);
		return $folders;
	}
	
	function imagesInFolder ( $root = '.' ) {
		$foldersArray = mapOfFolderToArray($root);
		$images = array();
		foreach ( $foldersArray as $val) {
			foreach ( glob($val.'/*.jpg') as $image ) {
				$images[] = $image;
			}
		}
		return $images;
	}
	

	$root = dirname(__FILE__).'/images';
	$images = imagesInFolder($root);
	
	echo '<pre>';
	print_r($images);
	echo '</pre>';

?>


první nalezený obrázek můžeš volat jako $images[0]

PS.: dá se to napsat hodně úsporněji.. je to odfláklé..

PPS.: pokud je třeba více formátů
			foreach ( glob($val.'/{*.gif,*.jpg,*.png}', GLOB_BRACE) as $image ) {
				$images[] = $image;
			}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0