Привет всем Хочу написать файловый менеджер на PHP. Не могу составить алгоритм. Вот скрипт для вывода списка файлов в заданной папке: <?php $current_dir = '.'; $dir = opendir($current_dir); while ($file = readdir($dir)) { echo "$file"; } closedir($dir); ?> Если $current_dir точка - то это папка, в которой лежит скрипт. Если две точки - то на уровень выше. Пожалуйста помогите составить алгоритм, и как правильно обрабатывать эти точки?
<?php if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo "$file\n"; } } closedir($handle); } ?>
В таком случае эти точки выводится вообще не будут. А мне надо чтобы: if($file == '..'){ echo "<a href=то тут ссылка на уровень выше>up</a>"; } И по этой ссылке на уровень выше опять загружался список файлов и папок.
вот правда тут только для папок и для ftp но можешь удалить часть кода PHP: foreach($directories_for_check as $key =>$value){ if (@ftp_chdir(self::$resourse,$value)) { $directories[] = $value; ftp_chdir(self::$resourse, "/.."); } и будет работать для всех файлов ............... model PHP: public function ShowDirs($dir){ ftp_chdir(self::$resourse,$dir); $dir = ftp_pwd(self::$resourse); $directories_for_check = ftp_nlist(self::$resourse, $dir); foreach($directories_for_check as $key =>$value){ if (@ftp_chdir(self::$resourse,$value)) { $directories[] = $value; ftp_chdir(self::$resourse, "/.."); } else { continue; }} return $directories; } .............................. view PHP: foreach ($directories as $ftp_dir ) { echo "$ftp_dir"; echo " <form action='"; echo Yii::app()->createUrl('magazineDownload/ShowDirs',array('dir'=>$ftp_dir)) ; echo "'method='POST'>"; echo "<input type='submit' value='перейти'>"."</form>"; ...................controler PHP: public function actionShowDirs ($dir=null){ if( $dir == null ) { $model = new MagazineDownload; //$directory =Yii::app()->params['ftp_server']; $ftp_resourse = MagazineDownload::$resourse; $dir = ftp_pwd($ftp_resourse); } $model = new MagazineDownload; $ftp_directories = $model->ShowDirs($dir); $this->render('DownloadForm',array( 'directories'=>$ftp_directories )); }
Мда PHP: $it = new RecursiveDirectoryIterator('temp'); foreach(new RecursiveIteratorIterator($it) as $file) { echo $file . PHP_EOL; }