Interne PHP Suchmaschiene
Fallout
- php
Hallo, suche ein ganz simples php-script Suchmaschienenscript was die eigene Seite durchsucht.
Habe schon die "suchen" funktion genutzt, habe auch diverse sachen probiert, leider ohne erfolg..
Danke im Voraus
Hi,
ich würde ein script bauen welches mir ersteinmal meine ganzen files einliest mit dir() und mit einer schleife jede einzelene datei mit file() einlesen und mit eregi() das suchwort suchen und pro treffer ausgeben in welcher datei er es gefunden hat.
also deine freunde sind:
MfG
Andy
Hallo, danke erstmal für deine Antwort, gibts da nichts fertiges?
Kenn mich noch nicht so gut aus in PHP.
Könntest du mir den code posten, kann ihn mir dann erweitern bzw anpassen.
Mit freundlichen Grüßen Fallout
Hallo,
ich habe in meine Seite http::/MailAktiv.de den kostenlosen Indexdienst http://www.crawl-it.de eingebunden. Die sind schnell und kaum Werbung. Eventuell reicht dir das ja.
Grüße, Rainer Rosenberger
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>
Hallo Fabienne,
habe das scriptmal ausprobiert. Hab den code in ne .php gepackt,
habe dann unten im html teil
<form action="<?php echo $PHP_SELF ?>" method="POST">
<input type='text' name='search'>
<input type='submit'>
</form>
eingefügt, das man dann die abfrage hat.
Jetzt bekomm ich folgenden fehler.
Warning: OpenDir: No such file or directory (errno 2) in /var/www/web1/html/seiten/artikel/new/easysearch.php on line 61
Fatal error: Call to a member function on a non-object in /var/www/web1/html/seiten/artikel/new/easysearch.php on line 64
Habe folgende zeile noch nicht angepasst. Wie mach ich das am besten?
$aPath = array ('./de','/allgemein' ); // welche verzeichnisse sollen durchsucht werden
Danke im Voraus
Habe folgende zeile noch nicht angepasst. Wie mach ich das am besten?
$aPath = array ('./de','/allgemein' ); // welche verzeichnisse
Trage hier alle Verzeichnisse ein, die Du durchsuchen möchtest. Wenn Du mit "/" beginnst, wird direkt von deinem Home-Verzeichnis aus der Ordner durchsucht. Wenn Du mit "./" beginnst, wird nur von der aktuellen Position der easysearch.php-Datei gesucht.
Beispiel:
$aPath = array('/Verzeichnis/direkt/nach/home','./Verzeichnis/ab/hier','../../dasVerzeichnis/zwei/Ordner/hoeher');
oder:
$aPath = array('/');
Jetzt sollten eigentlich alle Ordner durchsucht werden.
Hallo Fabienne,
welche php version braucht das script, bekomm immernoch
den Fehler, bei mir ist die Version 4.1.2 noch installiert.
Fehler:
Warning: open_basedir restriction in effect. File is in wrong directory in /var/www/web1/html/seiten/car/new/easysearch.php on line 66
Fatal error: Call to a member function on a non-object in /var/www/web1/html/seiten/car/new/easysearch.php on line 69
MfG
Das Script sollte normalerweise schon laufen. welche Version Du dafür benötigst, kann ich leider nicht sagen...
Schau mal, ob das Verzeichnis bei Dir überhaupt angelegt ist. Du solltest da natürlich Verzeichnisse eintragen, die existieren. Zudem wäre es zum Testen nicht schlecht dort mal ne Datei reinzulegen und zu schauen, ob PHP die überhaupt findet.
Greets
Hallo!
Hallo, suche ein ganz simples php-script SuchmaSCHINENscript was
Sorry, hab' keins. Aber die Suchmaschine Google hilft. Allerdings sicher nur, wenn Du den Unterschied zw. Maschine und Eisenbahn-, U-Bahn, Franklin-Bahn-Schiene kennst.
Viele Grüße aus Frankfurt/Main,
Patrick
Hab schon nach allem möglichen varianten gesucht, hab auch einiges gefunden, nur nichts passendes für mich, entweder ging das script nicht oder war zu umfangreich.
MfG
Schau mal auf
http://www.planetc.de/download/planetsearch/planetsearch.html
Die bieten ne kostenlose Suchmaschine auf php-basis zum Download an. Hab ich auch schon Versucht, ist ganz nett. Es wird sogar ein Logfile geschrieben, bei dem die gesuchten Worte in nem txt-File sortiert und gespeichert werden.
Hoffe das hilft nochmals.
Greets Fabe