从scandir()隐藏.DS_store

时间:2016-11-10 12:27:24

标签: php

我遇到一些问题,一个小脚本将文件从特定目录输出到表中,但是当我在mac上运行这个应用程序时,它会输出恼人的.DS_store文件。

这是我的脚本 - 我尝试了各种方法,要么停止脚本完全工作,要么没有效果。

<?php

echo '<table>';

$dir = 'archive/';
$files = scandir($dir, 0);
for($i = 2; $i < count($files); $i++)
    echo '<tr>
          <td>' . $files[$i]. '</td>
          <td><a href="' . $files[$i]. '" download><button>Download</button></a>
          <a href=""></a></td>
          </tr>';

echo '</table>';

?>

1 个答案:

答案 0 :(得分:3)

您可能希望忽略所有以'。'

开头的文件

._whatever:这些文件是在本身不支持HFS的卷上创建的。

.Trash:用于存储垃圾箱中抛出但尚未删除的文件。

.Spotlight-V100:存储Spotlight的元数据索引和索引规则。

<?php

echo '<table>';

$dir = 'archive/';
$files = scandir($dir, 0);
for($i = 2; $i < count($files); $i++)
  if (preg_match("/^[^\.].*$/", $files[$i])) {
    echo '<tr>
      <td>' . $files[$i]. '</td>
      <td><a href="' . $files[$i]. '" download><button>Download</button></a>
      <a href=""></a></td>
      </tr>';
  }
echo '</table>';
?>