san_jorich
@san_jorich
Творческий кодер

Почему код возвращает лишнее?

Здравствуйте!
Есть код, прочёсывающий ftp на наличие файлов и возвращающий их значения
$valid_ext = array("mp3", "wav", "m3u"); 
		$list = ftp_mlsd($this->connectionId, $directory);
		if(!empty($list)){
			foreach ($list as $file) {
				switch ($file['type']) { 
					case 'file': if(in_array(rotator_getExtension($file['name']),$valid_ext) && $this->rotator_preload2scan($directory.'/'.$file['name']) ) { 
						$this->fileList[]['tags'] = rotator_get_tags(TMP); 
						$this->fileList[]['FilePath'] = explode(MEDIALIB, $directory.'/'.$file['name'])[1];
					} break;
					case 'dir': $this->listFile2($directory.'/'.$file['name']); break;
				}
			}
		}
		return $this->fileList;

В коде есть switch с двумя параметрами: если файл - занести в массив, если директория - просканировать её на наличие файлов -> В массиве, по идее, должны быть только данные файлов, но почему-то с ними приходят и директории.. Как поправить?
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
Хотя бы для отладки вывел что возвращает тебе ftp_mlsd, 100% все проблемы бы решились сразу.

Пальцем в небо - в linux каждый каталог содержит два элемента '.' и '..', соответственно текущий и предыдущий каталог, вдруг ftp их возвращает а ты их в файлы записываешь? но тип по уму у них должен быть dir, плюс зациклилось бы все.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы