2011-08-19 84 views
0
<?php 
if ($handle = opendir('gallery3/var/thumbs/Captain-America/')) { 
    while (false !== ($file = readdir($handle))) { 
     if ($file != "." && $file != "..") { 
      echo "$file\n";?><br/><? 
      echo rtrim($file, '.jpg');?><br/><? 
      $names[]=$file; 
     } 
    } 
    closedir($handle); 
}  
?> 

我想創建一個輸出文件名的數組,也是rtrim元素。填寫一個數組的IF語句

+1

你有什麼問題?順便說一句,我知道每個人(我也是)說不要用PHP輸出HTML,但是你不必嚴格遵守它。可讀性也很重要! –

+0

創建一個$文件名和$文件rtrim的數組 – Techmax

+0

似乎你已經知道如何做到這一點。我可以看到你正在給數組添加'$ file'。什麼阻止你用'rtrim($ file,'.jpg')'的返回值來做同樣的事情?請更具體地說明你的問題。給出你想要得到的數組的例子。 –

回答

1

glob(加上array_map)可以做得更好,但你可以創建一個數組,並添加火柴很簡單:

$files = array(); // declare 
... 
$files[] = rtrim($file,'.jpg'); // adding entry 
... 
print_r($files); // debug output to see it 

的水珠例如:

// with or without the array_map to basename() 
$files = array_map('basename',glob('gallery3/var/thumbs/Captain-America/*')); 
var_dump($files); // normal files 

$files_rtrim = array_map(create_function('$f','return rtrim($f,".jpg");'),$files); 
var_dump($files_rtrim); // rtrim version of same files 
+1

glob將返回我猜測的完整路徑。 – Techmax

+0

你可以使用['basename'](http://php.net/manual/en/function.basename.php)並且很容易避免。 –