php: код който да индексира една директория.

Smirnoff

Registered
Вижте, значи трябва ми некво кодче което като го сложа в една директория и вътре имам tekst.txt и dokument.doc да вади
на 1-вата страница имената и линкове за тях, и колкото файлове да слагам в директорията скрипта директно да ги извежда на 1-вата страница.
Малко калпаво го обесних, но дано сте ме разбрали. :lol:
Благодаря предварително :?:
 
Ако файловете са много и трябва да се листват тогава:
http://www.web-tourist.net/forum/viewtopic.php?t=2267


И на двата трябва да промениш само HTML кода за да пасне на сайта.
 
уха!

admin мерси много, също и на лирикс за урока :?:
26.gif
 
Smirnoff каза:
да, но защо не показва размера на файла :(
вижте тук съм сложил кода:

http://smirnoff.voxbg.com/downloads/

Нещо не си направил като хората.
 
ето това е кода променен от мен :

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<head>
<title>View-Folder-link = script by LiRiX</title>
</head>
<body>
<center>
<table border="1 px">
<tr><th>Име на фалй:</TH><TH>Размер:</th></tr>
<?php
$directory = opendir('./addons'); //Тука както виждате трябва да сложите името на директорията с файлове примерно сайтит ви е info.com и фаловете са ви папка /нова-папка вие трябва да напишете ./нова-папка..
while ($files = readdir($directory))
{
$file_array[] = $files;
}
foreach ($file_array as $files)
{
echo "<tr><td>";
if($files == ".." || $files == ".")
{
continue;
}
echo "<a href=\"http://smirnoff.voxbg.com/downloads/addons/$files\" target=\"_blank\">$files</a><br></td>";
$file = "./директория/".$files;
$size = filesize($file);
$i=0;
$iec = array( " Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
while (($size/1024)>1) {
$size=$size/1024;
$i++;
}
echo"<td>";
echo substr($size,0,strpos($size,'.')+4).$iec[$i];
echo"</td></tr>";
}
?>
 
Разгледай темата в която коментираме създаването на този скрипт
аз през това време ще погледна кода ти!

http://web-tourist.net/forum/viewtopic.php?t=1189&highlight=filesize
 
Smirnoff каза:
ето това е кода променен от мен :

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<head>
<title>View-Folder-link = script by LiRiX</title>
</head>
<body>
<center>
<table border="1 px">
<tr><th>Име на фалй:</TH><TH>Размер:</th></tr>
<?php
$directory = opendir('./addons'); //Тука както виждате трябва да сложите името на директорията с файлове примерно сайтит ви е info.com и фаловете са ви папка /нова-папка вие трябва да напишете ./нова-папка..
while ($files = readdir($directory))
{
$file_array[] = $files;
}
foreach ($file_array as $files)
{
echo "<tr><td>";
if($files == ".." || $files == ".")
{
continue;
}
echo "<a href="http://smirnoff.voxbg.com/downloads/addons/$files" target="_blank">$files</a><br></td>";
$file = "./директория/".$files;
$size = filesize($file);
$i=0;
$iec = array( " Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
while (($size/1024)>1) {
$size=$size/1024;
$i++;
}
echo"<td>";
echo substr($size,0,strpos($size,'.')+4).$iec[$i];
echo"</td></tr>";
}
?>

Това в червеното така ли си го оставил?
 
и на мен ми се получи така след като направих тези промени по скрипта
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<head>
<title>View-Folder-link = script by LiRiX</title>
</head>
<body>
<center>
<table border="1 px">
<tr><th>Име на фалй:</TH><TH>Размер:</th><th>Име на фалй:</TH></tr>
<?php
$directory = opendir('../../');
while ($files = readdir($directory))
{
$file_array[] = $files;
}
foreach ($file_array as $files)
{
echo "<tr><td>";
if($files == ".." || $files == ".")
{
continue;
}
echo "<a href=\"/$files\" target=\"_blank\">$files</a><br></td>";
$file = "./".$files;
$size = filesize($file);
$i=0;
$iec = array( " Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
while (($size/1024)>1) {
$size=$size/1024;
$i++;
}
echo"<td>";
echo substr($size,0,strpos($size,'.')+4).$iec[$i];
echo"</td></tr>";
}
?>

скрипта е качен в root директорията на apache и незнаино защо ми индексира диск E и показва само Byte както на смирноф
 
mizarck каза:
и на мен ми се получи така след като направих тези промени по скрипта
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<head>
<title>View-Folder-link = script by LiRiX</title>
</head>
<body>
<center>
<table border="1 px">
<tr><th>Име на фалй:</TH><TH>Размер:</th><th>Име на фалй:</TH></tr>
<?php
$directory = opendir('../../');
while ($files = readdir($directory))
{
$file_array[] = $files;
}
foreach ($file_array as $files)
{
echo "<tr><td>";
if($files == ".." || $files == ".")
{
continue;
}
echo "<a href="/$files" target="_blank">$files</a><br></td>";
$file = "./".$files;
$size = filesize($file);
$i=0;
$iec = array( " Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
while (($size/1024)>1) {
$size=$size/1024;
$i++;
}
echo"<td>";
echo substr($size,0,strpos($size,'.')+4).$iec[$i];
echo"</td></tr>";
}
?>

скрипта е качен в root директорията на apache и незнаино защо ми индексира диск E и показва само Byte както на смирноф


Защото това:
$file = "./".$files;

ти е грешно.
Грешен е пътя.

Горе си задал така:
$directory = opendir('../../');

а долу

$file = "./".$files;

:?
 

Back
Горе