Gå til innhold

Søkemotor til websiden din


Anbefalte innlegg

Hei.

 

Her er et php skript jeg vil dele med alle. Har (med hjelp fra Torbjørn) modifisert et skript jeg fant i boka PHP Cookbok fra O'Reilly.

 

<?
# Dette er et php script som søker etter filer i en mappe
# og alle dens undermapper. Husk å endre bane/til/mappe til
# mappen du ønsker å søke igjennom.

# Skriver ut html form hvis søket er tomt.
if (!$_POST["search"]) {
echo "
   <form name='search' method='post' action='$_SERVER[PHP_SELF]'>
   <input type='text' name='search' class=search>
   <input type='submit' name='Submit' value='Submit' class=button>
   </form>";
} else {

# Angir antall undermapper som det skal søkes i
function pc_process_dir($dir_name,$max_depth = 10,$depth = 0) {
if ($depth >= $max_depth) { 
error_log("Reached max depth $max_depth in $dir_name.");
return false; 
} $subdirectories = array();
$files = array(); 
if (is_dir($dir_name) && is_readable($dir_name)) {
$d = dir($dir_name); 
while (false !== ($f = $d->read())) {

# Ekskluderer filer
if (($f==".")||($f=="..")||eregi('txt|index|html|jpg',$f)) {
continue; 
}
if (is_dir("$dir_name/$f")) {
array_push($subdirectories,"$dir_name/$f");
} else if(!$_POST["search"] || stristr(substr(ucfirst($f),0,-4),$_POST["search"])) {
array_push($files,"$dir_name/$f");
}} $d->close(); 
foreach ($subdirectories as $subdirectory) {
$files = array_merge($files,pc_process_dir($subdirectory,$max_depth,$depth+1));
}} return $files; 
}
# Spesifiserer banen til mappen som det skal søkes i
$files = pc_process_dir('bane/til/mappe'); 

#Sorterer
usort($files,"filename_sort");
foreach ($files as $file) { 
$filename = basename($file);

# Teller antall treff
$counter++;
echo "$counter | "; 

# Printer ut filnavn og fjerner etternavn på filnavnet.
print "<a href=$file>".substr(ucfirst($filename),0,-4)."</a><br>";

# Skriver ut innholdet av fil
#print htmlentities(implode('',array_slice($linjer,0,3)))."<br>";
#print implode('',array_slice($linjer,0,3))."<br>";
}}
function filename_sort($a,$b) {
$file_a = basename($a);
$file_b = basename($b);
return strcmp($file_a,$file_b);  
}
?>

 

 

Mvh

CD

Endret av christdi
Lenke til kommentar
Videoannonse
Annonse

<?

echo "Det finnes en genail funksjon på dette forumet som fargelegger koden din";

?>

 

:p

 

 

Edit: Hm, nei, det gjorde det ikke. *flau* :blush: Trodde det var noe ethvert PHP-forum hadde, men der tok jeg feil.

 

 

For å øke scriptet ditt sin lesevennlighet, anbefaler jeg deg å bruke indent ved brackets. Kanskje hadde det beste vært om du hadde linket til en .phps fil?

Endret av RipZ-
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...