| 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: 13 let
|
|||
0