2013-10-03 5 views
0

Функция FTP fpt_nlist() всегда возвращает 2 дополнительных элемента: '/.' и '/ ..', поэтому, даже если я использую его в пустом каталоге, я никогда не получаю пустой массив.PHP ftp_nlist неожиданное поведение

Это нормально? Могу ли я избавиться от этой проблемы или принять ее как есть?

Если я проверяю, является ли папка пустой или нет, таким образом, она всегда говорит, что папка не пуста.

Конечно я могу преодолеть это с:

if ($list !== FALSE AND count($list) > 0) 
{ 
    foreach ($list as $item) 
    { 
     if ($item != $filepath.'.' AND $item != $filepath.'..') 
     { 
     } 
    } 
} 

, но я хотел бы, чтобы решить эту проблему, вместо этого.

ответ

0

Это is Ожидаемое поведение с . и .. - это специальные файлы (символы каталога).

. относится к текущему каталогу и .. относится к родительскому каталогу

Эта схема используется в любой ОС, я работал с (UNIX, Linux (для в корневом каталоге, где она также представляет собой только), OSx, Windows), и вы должны ожидать fpt_nlist(), чтобы вернуть их.

+0

Я знал, что это такое, но спасибо за напоминание. Фактически, выше код является частью библиотеки Codeigniter, и он проверяет, пуста ли папка или нет. В оригинале он не включает последнюю внутреннюю инструкцию _if_ и вызывает бесконечный цикл. Я «исправил» это, потому что я не ожидал, что их библиотека имеет ошибки. – user2842799

Смежные вопросы