Fabienne: Interne PHP Suchmaschiene

Beitrag lesen

Hi!
Ich hab ein Script auf netpulse.ch gefunden:

<?

/* easySearch.php
   --------------

einfache suchmaschine für "kleine" webSites (< 50 seiten)

autor: martin stolz, future@netpulse.ch, 25.2.2001

installation:

1. die zu durchsuchenden verzeichnisse im array '$aPath' ergänzen.
   2. die zu durchsuchenden dateitypen im array '$aExtension' ergänzen.
   3. in '$sLinkAttrib' können für die angezeigten links weitere parameter für
      den <a> tag definiert werden: z.b. class=...  target=...  etc.
   4. bei bedarf kann der html-teil (am ende DIESER seite) noch angepasst werden.
   5. das textfeld im suchformular muss den namen 'search' haben:

<form action='easySearch.php'>
         <input type='text' name='search'>
      <input type='submit'>
     </form>

*/

// ***** konfigurierbare parameter *****

$aPath     = array ('./de','/allgemein' );   // welche verzeichnisse sollen durchsucht werden
$aExtension  = array ( '.php' ); // welche dateitypen sollen durchsucht werden
$sLinkAttrib = 'class=myStyle';         // zusätzliche attribute für die links

// ***** ende konfiguration *****

$sUL = '';

// search file
function searchFile($sPath) {

global $sUL;
 global $search;
 global $sLinkAttrib;

$sFile = strip_tags(join('',file($sPath)),'<title>,<meta>');
 if (stristr($sFile, $search)) {
  eregi('(<title>)([^<]+)', $sFile, $aParts);
  if ($aParts[2]) {
   $sUL .= "<li><a href='".$sPath."' ".$sLinkAttrib.">".$aParts[2]."</a>\n";
  }
  else {
   $sUL .= "<li><a href='".$sPath."' ".$sLinkAttrib.">".basename($sPath)."</a>\n";
  }
 }
}

// scan directory
function scanDir($sDir) {

global $aExtension;

// create dir object
 $oDir = dir($sDir);

// loop over all files
 while ($sEntry = $oDir->read()) {
  $sPath = $sDir.'/'.$sEntry;
  if (! is_dir($sPath)) {
   reset ($aExtension);
   while (list($sKey, $sExt) = each($aExtension)) {
    if (strtolower(substr($sPath, -1 * strlen($sExt)) == strtolower($sExt))) {
     searchFile($sPath);
    }
   }
  }
 }
 $oDir->close();
}

// suchbegriff vorhanden ?
if (isset($search) and (trim($search) != '')) {

// scan all directories
 while (list($sKey, $sName) = each ($aPath)) {
  scanDir($sName);
 }
}

?>

<html>

<head>
  <title></title>

<style>
   .myStyle {
    font-family : Verdana, Arial, sans-serif;
    font-size : 12px;
    color : Black;
    text-decoration : none;
   }
   .myStyle:visited {
    color : Black;
   }
   .myStyle:hover {
    color : Red;
   }
  </style>

</head>

<body class="myStyle">

<?  if ($sUL != '') { ?>

Der Suchbegriff <b>"<?= $search ?>"</b> wurde in folgenden Seiten gefunden:

<ul>
     <?= $sUL ?>
   </ul>

<?  }
    elseif (isset($search) and ($search != '')) { ?>

Der Suchbegriff <b>"<?= $search ?>"</b> wurde nicht gefunden.
     <br>
     <br>

<?  }
    else { ?>

Geben sie bitte einen Suchbegriff ein.
     <br>
     <br>

<? } ?>

<hr size="1" noshade>
  <span style="font-family: Verdana, Arial, sans-serif; font-size: 10px; color: Gray;">
   results by <b>easySearch.php</b> © 2001 <b><a href="http://netpulse.ch" target="_blank">martin stolz, future@netpulse.ch</a></b>
  </span>

</body>

</html>