簡體   English   中英

scandir返回[0] =>。和[1] => ..在數組中

[英]scandir returns [0] =>. and [1]=>.. in array

我有一個簡單的PHP腳本與這段代碼:

$files  = scandir($dir);    
print_r($files);

在我的陣列中注意到我:

    [0] => .
    [1] => ..
    [2] => assets.php
    [3] => loader.php

這是我的服務器上的錯誤還是預期的行為,它們是什么? 如果是后者有什么方法可以將它們從掃描中排除? 因為我希望只獲取我從目錄中創建的腳本文件而沒有別的。 有沒有辦法將它們從掃描中排除?

不,它是不是一個錯誤...... . 是當前目錄, ..父目錄

請參閱PHP文檔

用戶提供的注釋顯示了一種排除它們的方法:

$directory = '/path/to/my/directory';
$scanned_directory = array_diff(scandir($directory), array('..', '.'));

如果您使用scandir之外的其他選項,例如SPL的DirectoryIterator,可以選擇將它們排除(例如將它與RegexIterator結合使用),或者在迭代時測試它們:

$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->getFilename() . "\n";
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM