@MRcracker

Как добавить ссылку на файл?

Есть файлы в папке. Задача вывести их на экран и сделать ссылками. Я перебрал все файлы. Подскажите, как мне вывести структуру сами ссылки на файлы?

function getFilesLink($path) {
		$dir2 = scandir($path);

		foreach($dir2 as $file2){
			if (($file2!='.') && ($file2!='..'))
				if(is_dir($path . '/' . $file2))
					echo getFilesLink($path.'/'.$file2);
				else
					echo '<a href="'.($path . '/' . $file2).'</a>';
			}

			echo $fileLink;
		}

		getFilesLink('files2');
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
twobomb
@twobomb
function getFiles($path,$lvl = 0){
	$res = [];
    $dir2 = scandir($path);	
    foreach($dir2 as $file2){
        if (($file2!='.') && ($file2!='..')){
			$fullpath = $path . DIRECTORY_SEPARATOR . $file2;
            if(is_dir($fullpath)){
				$res = array_merge($res,getFiles($fullpath,$lvl+1));
                array_push($res,["path"=>$fullpath,"name"=>$file2,"type"=>"DIR","level"=>$lvl,"size"=>filesize($fullpath)]);
            }else if(is_file($fullpath))
                array_push($res,[ "path"=>$fullpath,"name"=>$file2,"type"=>"FILE","level"=>$lvl,"size"=>filesize($fullpath)]);
		}
    }
	return $lvl == 0 ? array_reverse($res): $res;
}

function showFiles($arr){	
	foreach($arr as $v){
		$margin = $v["level"] * 15;
		
		if($v["type"] == "DIR")
			echo "<span style='display:block;font-weight:bold;margin-left:{$margin}px;'>$v[name]</span>";
		if($v["type"] == "FILE")
			echo "<a style='margin-left:{$margin}px;display:block;' href='$v[path]'>$v[name]  ($v[size] байт)</a>";
	}
}



showFiles(getFiles('yourdir'));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
гуглите относительные и абсолютные пути, в вашем случае в линк нужно выводить относительные (от корня домена).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 10:42
150000 руб./за проект
25 апр. 2024, в 10:41
2000 руб./за проект
25 апр. 2024, в 10:25
2000 руб./за проект