търсачка за файлове

SandPrince

Registered
трябва ми търсачка която да търси файлове на моя сървър/хост
само че ако може прдайте на формата за търсене дизайн като на www.neznam.be
ако ви трябва инфо за материалите ползвани при нея:
http://web-tourist.net/forum/viewtopic.php?t=16931

без менюто горе - само формата за търсене искам да е същата и естествено да търси файлове на моя хост/сървър
може да ползвате тази търсачка:
http://web-tourist.net/login/login/view.php?st=1024
 
Не разбрах мн мн какво искаш ...
след ~ 4 прочитания на мнението ти останах с впечатлението че искаш тази търсачка (1024) да стане с AJAX (предполагам) като тази на сайта... така ли ? :roll:
 
Soul_Stealler каза:
Не разбрах мн мн какво искаш ...
след ~ 4 прочитания на мнението ти останах с впечатлението че искаш тази търсачка (1024) да стане с AJAX (предполагам) като тази на сайта... така ли ? :roll:

искам следното.
тази търсачка:
http://web-tourist.net/login/login/view.php?st=1024
да прилича на търсачката на www.neznam.be - без логото и бутоните обаче.
само търсещата форма
 
Не съм преглеждал въобще кода, но като видях търсачката и адски мн ми напомни за този урок. Ако искаш погледни го - може да ти свърши работа :)
 
adrian каза:
Не съм преглеждал въобще кода, но като видях търсачката и адски мн ми напомни за този урок. Ако искаш погледни го - може да ти свърши работа :)

офффф това не ми трябва...
как да го обясня по лесно да ме разберете.
искам търсачката от урока по горе да прилича на търсещата форма на neznam.be.
от такъв вид :
http://soul-design.org/search/search.php?s=a

искам да изглежда ето така:
neznam.jpg


дано сте ме разбрали
 
http://web-tourist.net/project/jooorooo/new.html

http://web-tourist.net/project/jooorooo/search.gif

Код:
<style>
#forma { 
color: #000; 
text-decoration: none; 
background: #ffffff; 
border-top: 1px solid #ADAEAF;
border-bottom: 1px solid #ADAEAF;
border-left: 1px solid #ADAEAF; 
font-size:15px; 
width:400;
height:25;
} 
#button {  
background: #ffffff; 
border-top: 1px solid #ADAEAF;
border-bottom: 1px solid #ADAEAF;
border-right: 1px solid #ADAEAF; 
width:25;
height:25;
} 
</style>
<table cellspacing="0" cellpadding="0" border="0"> 
<tr>
<td><input id="forma" type="text" size="15" name="search"></td>
<td><button id="button" type="submit"><img src="search.gif" border="0"></button></td>
</tr>
</table>
 
Код:
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
<title>Search script by S_Soul</title> 
<style type="text/css"> 
body{ 

} 
a:link { 
color: #0078cc; 
text-decoration: none; 
} 
a:visited { 
text-decoration: none; 
color: #0078cc; 
} 
a:hover { 
text-decoration: none; 
color: #eb7c02; 
} 

a:active { 
text-decoration: none; 
color: #0072cc; 
} 
#forma { 
color: #000; 
text-decoration: none; 
background: #ffffff; 
border-top: 1px solid #ADAEAF;
border-bottom: 1px solid #ADAEAF;
border-left: 1px solid #ADAEAF; 
font-size:15px; 
width:400;
height:25;
} 
#button {  
background: #ffffff; 
border-top: 1px solid #ADAEAF;
border-bottom: 1px solid #ADAEAF;
border-right: 1px solid #ADAEAF; 
width:25;
height:25;
} 
img{ 
border:0px; 
} 
.pages { 
padding:1px; 
background-color: #F2F2F2; 
} 
</style> 
</head> 

<body> 
<table> 
<tr><td> 
<form action="./search.php" method="get"> 
<b>Търсене:</b> <input type="text" name="s" id="forma" value="<?php 
$s = htmlspecialchars($_GET['s'], ENT_QUOTES); ///// http://bg2.php.net/manual/en/function.htmlspecialchars.php 
echo $s; ?>"> 
<button id="button" type="submit"><img src="search.gif" border="0">
</form> 
<?php 
if ($s !=null ){ 
echo "</td></tr>"; 
} 
?> 




<?php 
$sort = htmlspecialchars($_GET['sort'], ENT_QUOTES); ///// http://bg2.php.net/manual/en/function.htmlspecialchars.php 


function size($path){ /////функция, за превръщане на байтове в по-големи единици 
$size = filesize($path); 
if($size >= 1073741824) 
{ 
$size = round($size / 1073741824 * 100) / 100; 
$size=substr($size,0 , 4); 
$size = $size . " GB"; 
} 
elseif($size >= 1048576) 
{ 
$size = round($size / 1048576 * 100) / 100; 
$size=substr($size,0 , 4); 
$size = $size . " MB"; 
} 
elseif($size >= 1024) 
{ 
$size = round($size / 1024 * 100) / 100; 
$size=substr($size,0 , 4); 
$size = $size . " KB"; 
} 
else 
{ 
$size=substr($size,0 , 4); 
$size = $size . " B"; 
} 
echo $size; 
} 


function show($dir){ /////с тази функция обхождаме директорията и директориите в нея 
global $i; ///// правим $i глобална, за да важи нейната стойност и извън фукцията 
global $file; ///// правим $file глобална, за да важи нейната стойност и извън фукцията 
$s = htmlspecialchars($_GET['s'], ENT_QUOTES); ///// http://bg2.php.net/manual/en/function.htmlspecialchars.php 
$directory = opendir($dir); ///// отваряме зададената папка 
while ($files = readdir($directory)) ///// изкарваме файловете от директорията 
{ 
if (($files != "..") AND ($files != ".")){ ///// ако файла е .. или . (т.е. предишната директория) го пропускаме 
$path = $dir.'/'.$files; ///// определяме пълния път до файла 
if (!is_dir($path)){ ///// ако файла не е директоктория продължаваме нататък 
if (eregi($s, $files)) { ///// ако във файла се съдържа ключовата дума която търсим продължаваме нататък 
$i++; ///// покачваме стойността на $i с 1 
$file[]=array ( ////// http://bg2.php.net/manual/en/function.array.php 
"name" => $files, ///// придаваме стойност на name => $files -> името на файла 
"dir" => $dir, ///// придаваме стойност на dir => $dir -> директорията на файла 
"path" => $path ///// придаваме стойност на path => $path -> линка към файла 
); 

} 
} 
if(is_dir($path)) { ////// ако файла е директория продължаваме нанатък и отново следва функцията която преглежда папката 
show($path); ///// функцията за преглеждане на папката. Докато има папки, те ще се отварят и преглеждат за файлове съдържащи търсените от нас ключови думи 
} 
} 
} 
} 


if ($s != null){ ///// ако заявката за търсене не е празна 
show ("."); ///// задаваме от коя папка да започне търсенето на файлове 
$num = count($file); ///// брой $file 
if ($num != null){ ////// ако $num няма стойност, показва че няма намерени файлове 
$found="Намерени файлове: ".$i; 
} else { ///// ако $num има стойност, показва колко са намерените файлове 
$found="Няма намерени файлове"; 
} 
echo " 
<tr> 
<td> 

<table width=\"100%\" align=\"left\" style=\"font-size:12px;font-family: Tahoma;\"> 
<tr> 
<td style=\"border:1px solid #DBDBDB;\" colspan=\"3\"> 
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap\">Резултати за: ".$s."</div> 
</td> 
</tr> 
<tr> 
<td style=\"border:1px solid #DBDBDB;\" colspan=\"3\"> 
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap\">".$found."</div> 
</td> 
</tr> 
</table> 
</td> 
</tr> 
<tr> 
<td> 
<table width=\"580px\" align=\"left\" style=\"font-size:12px;font-family: Tahoma;\"> 
<tr> 
<td style=\"border:1px solid #DBDBDB;\" width=\"20px\" align=\"center\"> 
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap;height:15px;\"> 
</div> 
</td> 
<td style=\"border:1px solid #DBDBDB;\" width=\"510px\" align=\"left\" colspan=\"2\"> 
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap;height:15px;\"> 
<a href=\"?s=".$s.""; 
if ($page != null){ ///// ако $page има стойност, т.е. избрана е страница 
echo "&page=".$page.""; 
} 
echo "&sort=name\">Сортирай по име</a>"; 
if ($sort == "name"){ ///// ако вече е избрано да се сортират файловете по име се показва опция за премахване на сортирането 
echo " <a href=\"?s=".$s; 
if ($page != null){ ///// ако $page има стойност, т.е. избрана е страница 
echo "&page=".$page; 
} 
echo "\"><b>[X]</b></a>"; 
} 
echo "</div> 

</td></tr>"; 
if ($num > "30"){ ///// ако намерените файлове са повече от 30 
$page_num=ceil($num/30); ///// определяне броя на страниците. ceil() - закръгля към по-голямото число 
if ($page != null){ ///// ако $page има стойност, т.е. избрана е страница 
$num_for=30*$page; ////// определя се до кой файл да се изреждат останалите 
$i_value=$num_for-30; ///// определя се от кой файл да започнат се изреждат останалите. т.е. от $i_value до $num_for 
$rows = $num_for - $num; ///// редовете за изреждане (<tr>). Попринцип те са 30, но на последната страница се получават празни редове. За това е нужна тази променлива 
if ($page == $page_num){ ///// ако избраната страница е равна на броя на страници, т.е. ако е последна 
$num_for=$num_for-$rows; ///// броя на редовете, които ще се изреждат на последната страница, за да не останат празни редове 
} 
} else { ///// ако не е избрана страница се показват първите 30 файла 
$i_value="0"; 
$num_for="30"; 
} 
} else { ///// ако файловете са по-малко от 30 се показват всичките 
$i_value="0"; 
$num_for=$num; 
} 




for ($i=$i_value;$i<$num_for;$i++){ ///// for loop 
if (strlen($file[name])>"75"){ ///// ако дължината на името е по-дълга от 75 символа 
$totchki='...'; 
} else { ///// ако е по-малка от 75 символа 
$totchki=''; 
} 
$file[$i][name]=substr($file[$i][name],0 , "75"); ///// махат се всички символи след 75тия 
if ($sort == "name"){ ///// ако е избрано да се сортират файловете по име 
sort($file); ///// http://bg2.php.net/manual/en/function.sort.php 
} 
//////////////// ИЗРЕЖДАНЕ НА ФАЙЛОВЕТЕ В ОТДЕЛНИ РЕДОВЕ - START //////////////// 
echo "<tr> 
<td style=\"border:1px solid #DBDBDB;\" width=\"20px\" align=\"center\"> 
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap;height:15px;\"> 
<a href=\"".$file[$i][dir]."\" onClick=\"this.target='_blank'\"> 
<img src=\"folder.png\" height=\"15px\" width=\"15px\"></a> 
</div> 
</td> 
<td style=\"border:1px solid #DBDBDB;\" width=\"510px\" align=\"left\"> 
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap;height:15px;\" onmouseover=\"this.style.backgroundColor='#F9F9F9'\" onmouseout=\"this.style.backgroundColor='#F2F2F2'\"> 
<a href=\"".$file[$i][path]."\">".$file[$i][name].$totchki."</a> 
</div> 
</td> 
<td style=\"border:1px solid #DBDBDB;\" width=\"50px\" align=\"center\"> 
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap; color: #0078cc;height:15px;\">"; 
size($file[$i][path]); 
echo "</div></td></tr>"."\n"; 
//////////////// ИЗРЕЖДАНЕ НА ФАЙЛОВЕТЕ В ОТДЕЛНИ РЕДОВЕ - END //////////////// 
} 
if ($num > "30"){ ///// ако броя на файловете е почю-голям от 30 
$page_num=ceil($num/30); ///// определя се броя на страниците 
//////////////// ИЗРЕЖДАНЕ НА ЛИНКОВЕ КЪМ РАЗЛИЧНИТЕ СТРАНИЦИ - START //////////////// 
echo "<tr><td colspan=\"3\" style=\"border:1px solid #DBDBDB;white-space:nowrap;font-size:13px;font-family: Tahoma;\">"; 

for($a=1;$a<=$page_num;$a++){ ///// for loop 
if ($a==$page){ ///// ако в момента разглеждате дадената страница, тя не излиза като линк 
echo " <b>".$a."</b> |"; 
} else { ///// изреждат се линковете към различните страници 
echo " <a href=\"?s=".$s."&page=".$a; 
if ($sort == "name"){ 
echo "&sort=name"; 
} 
echo "\">".$a."</a> |"; 
} 
} 
echo "</td></tr>"; 
} 
//////////////// ИЗРЕЖДАНЕ НА ЛИНКОВЕ КЪМ РАЗЛИЧНИТЕ СТРАНИЦИ - END //////////////// 
echo "</table>"; 

} 

?> 
</td></tr></table> 

</body> 

</html>
 

Back
Горе