2016-11-10 103 views
1

我有一些問題,從一個特定的目錄輸出文件到表中,但它輸出惱人的.DS_store文件,因爲我在Mac上運行此應用程序。從scandir隱藏.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>'; 

?> 
+0

'if($ files [$ i]!='.DS_store')' –

回答

1

您可能希望忽略以'。'開始的所有文件。

._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>'; 
?> 
+0

這是完美的,我在找什麼!這很有意義,現在我已經通過使用pre_match了,但是它需要按照您的答案進入IF語句。 – PhpDude