2011-08-19 80 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)并且很容易避免。 –