Gå til innhold

Søkemotor til websiden din


Anbefalte innlegg

Skrevet (endret)

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
Videoannonse
Annonse
Skrevet (endret)

<?

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-

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...