WinFuture-Forum.de: Php Suchfunktion - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Php Suchfunktion


#1 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 20. Juli 2009 - 11:26

Ok, nachdem wir darauf gekommen sind, dass ich phpdig nicht verwenden kann, wollte ich wissen, ob hier irgendwer eine ahnung hat wie ich eine suche auf eine komernzielle webseite einbauen kann, die keinen copyright hinweis trägt...

Danke im vorraus

edit: ich habe jetzt folgendes script im einsatz
<?php 
// ***** konfigurierbare parameter *****

$aPath	 = array (',/' );   // 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 WBscanDir($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">
<form action="<?php echo $PHP_SELF ?>" method="POST">
<input type='text' name='search'>
<input type='submit'>
</form>

  <?  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>

  <? } ?>





 </body>

</html>
doch es zeigt nur "Bitte geben sie einen Suchbegriff ein" an

Dieser Beitrag wurde von Ludacris bearbeitet: 20. Juli 2009 - 11:37

0

Anzeige



#2 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 20. Juli 2009 - 15:15

Ohne Index bei jeder Suchanfrage alle Dateien durchsuchen? - Das geht wirklich nur bei sehr schwach frequentierten Seiten und da ist es eigentlich auch Verschwendung, ab einer gewissen Seitenanzahl.

Als "professionellen" Ansatz unter PHP kann ich dir z.B. Zend_Search_Lucene empfehlen.
0

#3 Mitglied ist offline   schumi0815 

  • Gruppe: aktive Mitglieder
  • Beiträge: 482
  • Beigetreten: 20. Juli 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:München

geschrieben 20. Juli 2009 - 15:29

verstehe ich den quellcode richtig? du willst einfach alle dokumente nach nem string durchsuchen und dann die seiten auflisten lassen oder?
wenn du schon php zur verfügung hast würde ich den seiten content in ne db reinhaun und mit tags versehen. sollte das schnellste ergebnis liefern.
0

#4 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 20. Juli 2009 - 15:31

Beitrag anzeigenZitat (Diewie: 20.07.2009, 16:15)

Ohne Index bei jeder Suchanfrage alle Dateien durchsuchen? - Das geht wirklich nur bei sehr schwach frequentierten Seiten und da ist es eigentlich auch Verschwendung, ab einer gewissen Seitenanzahl.

Als "professionellen" Ansatz unter PHP kann ich dir z.B. Zend_Search_Lucene empfehlen.

Das klingt schon recht nett...

Beitrag anzeigenZitat (schumi0815: 20.07.2009, 16:29)

verstehe ich den quellcode richtig? du willst einfach alle dokumente nach nem string durchsuchen und dann die seiten auflisten lassen oder?
wenn du schon php zur verfügung hast würde ich den seiten content in ne db reinhaun und mit tags versehen. sollte das schnellste ergebnis liefern.

joa nur wie? bzw, kann ich mir irgendwie einen bot coden der mir die seiten durchsucht und die stichwörter in einer DB speichert?

Dieser Beitrag wurde von Ludacris bearbeitet: 20. Juli 2009 - 15:36

0

#5 Mitglied ist offline   schumi0815 

  • Gruppe: aktive Mitglieder
  • Beiträge: 482
  • Beigetreten: 20. Juli 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:München

geschrieben 20. Juli 2009 - 15:37

du musst keinen bot coden. du musst nur beim erstellen jedes eintrags zb. bei nem blog immer noch paar tags mit in der db abspeichern. bzw es würde sogar reichen nur die tags + verweis auf die seite in ner db abzuspeichern. tags musst dir halt selber ausdenken (so ca 1-10). ist dann für die meisten ansprüche aber mehr als ausreichend.

du könntest natürlich auch den content text selber durchsuchen lassen(wenn du ihn von anfang an in ne db schreibst) was aber wiederrum wieder ein bisschen dauern sollte je nachdem wie schnell dein server ist und wie gross deine hp.

glaub 2te lösung ist am besten für dich falls du nicht schon zuviel an der hp gemacht hast bzw sie einigermassen flexibel designed wurde.


ps: sry falls ich bissl wirr schreibe. hab grad mein x-ten kaffee getrunken. wenn ich zu blöd geschriebn hab einfach sagen^^.

Dieser Beitrag wurde von schumi0815 bearbeitet: 20. Juli 2009 - 15:42

0

#6 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 20. Juli 2009 - 15:42

Beitrag anzeigenZitat (schumi0815: 20.07.2009, 16:37)

du musst keinen bot coden. du musst nur beim erstellen jedes eintrags zb. bei nem blog immer noch paar tags mit in der db abspeichern. bzw es würde sogar reichen nur die tags + verweis auf die seite in ner db abzuspeichern. tags musst dir halt selber ausdenken (so ca 1-10). ist dann für die meisten ansprüche aber mehr als ausreichend.

du könntest natürlich auch den content text selber durchsuchen lassen was aber wiederrum wieder ein bisschen dauern sollte je nachdem wie schnell dein server ist und wie gross deine hp.



Die Webseite hat ca 100 Seiten sowie einige PDF Prospekte (Die Prospekte MÜSSEN nicht umbedingt in der Suche vorhanden sein, es wäre aber sicher Vorteilhaft) - der Server ist momentan der Firmen Server, d.h. der kann in der Nacht ordentlich indizieren (leistung hat er genug)

Edit: Was meinst du mit einigermaßen flexibel?

Dieser Beitrag wurde von Ludacris bearbeitet: 20. Juli 2009 - 15:48

0

#7 Mitglied ist offline   schumi0815 

  • Gruppe: aktive Mitglieder
  • Beiträge: 482
  • Beigetreten: 20. Juli 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:München

geschrieben 20. Juli 2009 - 15:52

wie sind die seiten aufgebaut? statisch oder mit datenbank?
am einfachsten sehs ich wenn du den text aus den pdfs auch in die db einfügst und dann auf als suchresultat nen link auf die pdf datei wiedergibst. evtl gibts auch direkt ne möglich keit texxt aus pdf auszulesen aba da hab ich ka.
0

#8 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 20. Juli 2009 - 15:54

Beitrag anzeigenZitat (schumi0815: 20.07.2009, 16:52)

wie sind die seiten aufgebaut? statisch oder mit datenbank?
am einfachsten sehs ich wenn du den text aus den pdfs auch in die db einfügst und dann auf als suchresultat nen link auf die pdf datei wiedergibst. evtl gibts auch direkt ne möglich keit texxt aus pdf auszulesen aba da hab ich ka.

bei den seiten ist es teils in DB's und teils statisch - in den PDF's ist nur leider fast kein text sondern hauptsächlich bilder =/
0

#9 Mitglied ist offline   schumi0815 

  • Gruppe: aktive Mitglieder
  • Beiträge: 482
  • Beigetreten: 20. Juli 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:München

geschrieben 20. Juli 2009 - 15:57

ich würde dann alle seiten inhalte in die db integrieren dann sind sie auch über ne php suchfunktion auslesbar/durchsuchbar.
wenn in den pdfs nur bilder sind dann würd ich für eigene einträge erstellen die des ding halt recht gut beschreiben. dann sollts die suche auch mitbekommen.
0

#10 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 20. Juli 2009 - 16:36

Beitrag anzeigenZitat (schumi0815: 20.07.2009, 16:57)

ich würde dann alle seiten inhalte in die db integrieren dann sind sie auch über ne php suchfunktion auslesbar/durchsuchbar.
wenn in den pdfs nur bilder sind dann würd ich für eigene einträge erstellen die des ding halt recht gut beschreiben. dann sollts die suche auch mitbekommen.



einfach den text (den inhalt) in ein feld eintragen?
0

#11 Mitglied ist offline   schumi0815 

  • Gruppe: aktive Mitglieder
  • Beiträge: 482
  • Beigetreten: 20. Juli 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:München

geschrieben 20. Juli 2009 - 16:54

jup einfach den text in ein db-feld(mysql oda sowas) eintragen. dann mit nem suchscript den inhalt nach suchstring durchsuchen lassen.
0

#12 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 21. Juli 2009 - 10:12

Naja das ist aber auch eher suboptimal oder?
0

#13 Mitglied ist offline   schumi0815 

  • Gruppe: aktive Mitglieder
  • Beiträge: 482
  • Beigetreten: 20. Juli 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:München

geschrieben 21. Juli 2009 - 12:55

naja auf jeden besser als wenn er alle datein öffnen muss und php/html code mit durchsuchen muss was doch dann um vieles mehr text ist und evtl sogar falsche ergebnise liefert.
0

#14 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 21. Juli 2009 - 13:26

In der c't 5/2009 gab es einen Artikel, was genau dein Thema abdeckt: http://www.heise.de/...v/ct/2009/5/186
0

#15 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 21. Juli 2009 - 14:40

Also ich habe den artikel gerade gekauft, ich muss sagen - so einen gut beschribenen artikel habe ich schon lange nicht mehr gesehen - Danke für den Tipp!!
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0