1
在php中做簡單的ftp查看器:Php數組(少數)foreach獲取值
我有一個返回數組與file_name的函數。
我(在我的函數結束)print_r($files);
,這是出把
Array ([0] => task_manager.zip [1] => 1086237 [2] => zip) Array ([0] => asd.zip [1] => 1086237 [2] => zip [3] => fonts/some_file.zip [4] => 959224 [5] => zip)
正如你可以看到我得到的陣列,這是完美的,但後來我想FILE_NAME,FILE_SIZE & FILE_EXTENSION我得到失敗:
PS - ListFiles
- 是我的函數名,('fonts/')
- 文件夾,我發現文件
foreach (ListFiles('fonts/') as $key=>$file){
echo 'file_name = '.$file."<br/>";
}
,我得到:
file_name = task_manager.zip
file_name = 1086237
file_name = zip
file_name = fonts/some_file.zip
file_name = 959224
file_name = zip
這實際上是錯誤的,因爲我想這樣做在一條線,像這樣:
我想(接近完美的方式)做這樣的事情:
在PHP:
foreach (ListFiles('fonts/') as $key=>$file){
echo 'file_name = '.$file[0].'file_size = '.$file[1].'file_ext = '.$file[2].'<br/>';
}
在HTML:
file_name = task_manager.zip, file_size = 1086237, file_ext = zip
file_name = some_file.zip, file_size = 959224, file_ext = zip
UPDATE:MY ListFiles功能
function ListFiles($dir) {
if($dh = opendir($dir)) {
//This data I get from form
$allowedExts = array();
if(isset($_POST['exts'])){
for ($i=0; $i < count($_POST['exts']); $i++){
array_push($allowedExts, $_POST['exts'][$i]);
}
} // end of this data
$files = Array();
$inner_files = Array();
while($file = readdir($dh)) {
if($file != "." && $file != ".." && $file[0] != '.') {
if(is_dir($dir . "/" . $file)) {
$inner_files = ListFiles($dir . "" . $file);
if(is_array($inner_files))
$files = array_merge($files, $inner_files);
} else {
if(in_array(end(explode('.', $file)), $allowedExts)){
$filesize = filesize('./'.$dir.$file);
$userfile_extn = substr($file, strrpos($file, '.')+1);
array_push($files, $dir . "/" . $file, $filesize, $userfile_extn);
}
}
}
}
closedir($dh);
return $files;
}
}
如何展示你的'ListFiles'功能的源代碼? – DCoder 2012-07-28 16:14:57
我們需要你的'ListFiles()'函數,因爲有一種更好的方法來設置你的數組。 – David 2012-07-28 16:16:09
補充說,對不起我這個.. – 2012-07-28 16:22:38