Autor | Zpráva | ||
---|---|---|---|
Silver8000 Profil |
#1 · Zasláno: 7. 1. 2014, 11:17:07
Ahoj vsem mam takovy mensi problem se zanamem slozek pod slozek a souboru ktere jsou v nich.
Vyzkousel jsem uz vsechny moznosti funkci (DrirectoryIterator,readdir,scandir,glob) a vsechny mi delaji to same. Priklad jak to vypada po pouziti me funce kterou mam : Array ( [0] => Z:/Filmy/Agenti v suknich - Jaky otec takovy syn (2011) - (CZ)/Agenti v suknich - Jaky otec takovy syn (2011) - (CZ).mkv ) Array ( [0] => Z:/Filmy/Au Pair aneb slecna na hlidani (1999) - (CZ)/Au Pair aneb slecna na hlidani (1999) - (CZ).mp4 ) Array ( [0] => Z:/Filmy/Babovresky (2013) - (CZ)/Babovresky (2013).avi ) Array ( [0] => Z:/Filmy/Bezpecny pristav (2013) - (CZ)/Bezpecny pristav (2013) - (CZ).avi ) Array ( [0] => Z:/Filmy/Blby a Blbejsi (1993) - (CZ)/Blby a Blbejsi (1993) - (CZ).avi ) Array ( [0] => Z:/Filmy/Byl jednou jeden kral (1954) - (CZ)/Byl jednou jeden kral (1954) - (CZ).avi ) Array ( [0] => Z:/Filmy/Certe, drz se sveho kopyta (1998) - (CZ)/Certe, drz se sveho kopyta (1998) - (CZ).mp4 ) Namisto toho bych to potreboval takhle : Array ( [0] => Z:/Filmy/Agenti v suknich - Jaky otec takovy syn (2011) - (CZ)/Agenti v suknich - Jaky otec takovy syn (2011) - (CZ).mkv [1] => Z:/Filmy/Au Pair aneb slecna na hlidani (1999) - (CZ)/Au Pair aneb slecna na hlidani (1999) - (CZ).mp4 [2] => Z:/Filmy/Babovresky (2013) - (CZ)/Babovresky (2013).avi [3] => Z:/Filmy/Bezpecny pristav (2013) - (CZ)/Bezpecny pristav (2013) - (CZ).avi [4] => Z:/Filmy/Blby a Blbejsi (1993) - (CZ)/Blby a Blbejsi (1993) - (CZ).avi [5] => Z:/Filmy/Byl jednou jeden kral (1954) - (CZ)/Byl jednou jeden kral (1954) - (CZ).avi [6] => Z:/Filmy/Certe, drz se sveho kopyta (1998) - (CZ)/Certe, drz se sveho kopyta (1998) - (CZ).mp4 ) Uz jsem na tim stravil asi 3 dny.. Zde je odkaz http://stackoverflow.com/questions/15054997/how-to-get-all-files-from-folders-and-subfolders-with-full-path-using-scandir odkud jsem pouzil jednu z funkci ale tohle zrovna neslapalo jak jsem predpokladal tak jsem to malinko predelal na toto: <?php set_time_limit(0); function listFolderFiles($dir){ $WebVideoRootAllowedFileExtension = array('flv','3gp','mp4','avi','mkv'); $WebVideoRootDisallowedContent = array('.','..','Thumbs.db'); $WebScanDir = scandir($dir); $i = 0; $list = array(); foreach($WebScanDir as $WebDir){ if(!in_array($WebDir,$WebVideoRootDisallowedContent)){ if(is_dir($dir.$WebDir)){ $WebVideoContentPath = $dir.$WebDir.'/'; listFolderFiles($WebVideoContentPath); }else{ $WebVideoContentPath = $dir.$WebDir; } }else{ $WebVideoContentPath=''; } if ($WebVideoContentPath==true and in_array(end(explode('.',basename($WebVideoContentPath))),$WebVideoRootAllowedFileExtension)){ $list[] = $WebVideoContentPath."\n"; } } print_r($list); } listFolderFiles('Z:/'); ?> Prosim pomozte uz nevim jak dal. Predem diky |
||
aDAm Profil |
#2 · Zasláno: 7. 1. 2014, 11:39:24
musíš si do té funkce přidat nějakou návratovou hodnotu a o tu pak iterovat výsledek a print si dát až na konci kde to voláš:
function listFolderFiles($dir){ ... if(is_dir($dir.$WebDir)){ $WebVideoContentPath = $dir.$WebDir.'/'; $list2 = listFolderFiles($WebVideoContentPath); $list = array_merge($list, $list2); }else{ $WebVideoContentPath = $dir.$WebDir; } ... return $list; } $list = listFolderFiles('Z:/'); print_r($list); |
||
Silver8000 Profil |
#3 · Zasláno: 7. 1. 2014, 17:34:50
Tak jsem to vyresil jinak.
A tady je vysledek : <?php set_time_limit(0); function WebVideoFiles($dir){ $WebVideoRootAllowedFileExtension = array('flv','3gp','mp4','avi','mkv'); $WebVideoRootDisallowedContent = array('Serialy'); $WebScanDir = glob($dir.'*'); $WebVideoFolderList = ''; foreach($WebScanDir AS $WebVideoFolder){ if(!in_array(basename($WebVideoFolder),$WebVideoRootDisallowedContent)){ if(is_file($WebVideoFolder)){ if(in_array(end(explode('.',basename($WebVideoFolder))),$WebVideoRootAllowedFileExtension)){ $WebVideoFolderList .= $WebVideoFolder.'|</\>|'; } } if(is_dir($WebVideoFolder)){ $WebVideoFolderList .= WebVideoFiles($WebVideoFolder.'/'); } } } return $WebVideoFolderList; } function WebVideoFilesFilterArrayList($WebVideoFolderCreateList){ return array_filter(explode('|</\>|',WebVideoFiles($WebVideoFolderCreateList))); } print_r(WebVideoFilesFilterArrayList('Z:/')); ?> Nechal jsem vsechny hodnoty spojit a pak rozdelit s odstranenim prazdne hodnoty. Ted to facha jak jsem puvodne zamyslel. |
||
Časová prodleva: 10 let
|
0