Autor | Zpráva | ||
---|---|---|---|
lukasik Profil |
#1 · Zasláno: 18. 10. 2011, 19:55:13 · Upravil/a: lukasik
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 |
#2 · Zasláno: 19. 10. 2011, 18:50:27 · Upravil/a: whoami
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; } |
||
Časová prodleva: 13 let
|
0