Suche

Alles, was PHP betrifft, kann hier besprochen werden.

Suche

Postby zAp!! » 12. September 2005 09:35

Hallo Community!

Ich habe ein kleines Problem in meiner PHP Suche die in einer Datei sucht:
Code: Select all
<?
   $search = "fgets(fopen(skripts/index.txt,r))";
$fp = fopen('skripts/index.txt', 'r');
while (!feof($fp)) {
    $zeile = fgets($fp);
    if (preg_match("/\b$keyword\b/i", "$zeile")) {
   echo "Es wurde eine Übereinstimmung gefunden.";
   echo "<a href='skripts/$keyword/'>Link</a>";
 }
 else{
  echo "Nichts gefunden in Zeile<BR>";
}
}
?>

Wenn ich else ganz unten hinschreibe, kommt ein parse error.
Wenn ich else aber in die while Schleife mitlasse, geht's, aber es erscheint sooft wie in der Datei gesucht wurde(1xpro Zeile).
Hat jemand eine Idee wie ich bei keinem treffer nur einmal das else erscheinen lassen kann?
mfg zAp!!
Anti Mysql User
because use VDB as your DB!
http://www.zap.de.tk
User avatar
zAp!!
 
Posts: 38
Joined: 28. August 2005 19:34
Location: A-Feldkirch

Postby Wiedmann » 12. September 2005 09:40

z.:B in dem du einen Zaehler für Nichttreffer mitlaufen lässt. UNd bei Zähler > 1 lässt du das echo nicht ausführen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby zAp!! » 12. September 2005 09:55

ich check das noch immer nicht ganz...Wenn ich einen treffer habe, wird die Meldung das nichts gefunden wurde, noch immer angezeigt...
Code: Select all
<?
$i = "0";
$search = "fgets(fopen(skripts/index.txt,r))";
$fp = fopen('skripts/index.txt', 'r');
while (!feof($fp)) {
    $zeile = fgets($fp);
    if (preg_match("/\b$keyword\b/i", "$zeile")) {
   echo "Es wurde eine Übereinstimmung gefunden.";
   echo "<a href='skripts/$keyword/'>Link</a>";
 }
  else{
  $i++;
  if ($i <= "1"){
   echo "Es gab keine Treffer bei der Suche nach dem Projekt $keyword!";
}
}
}
?>

Weiß jemand Rat?
mfg zAp!!
Anti Mysql User
because use VDB as your DB!
http://www.zap.de.tk
User avatar
zAp!!
 
Posts: 38
Joined: 28. August 2005 19:34
Location: A-Feldkirch

Postby jakimo72 » 16. September 2005 22:20

Code: Select all
<?
$i = 0;
$fp = fopen('skripts/index.txt', 'r');
while ($zeile = fgets($fp)) {
    if (preg_match("/\b$keyword\b/i", "$zeile")) {
       echo "Es wurde eine Übereinstimmung gefunden.";
       echo "<a href='skripts/$keyword/'>Link</a>";
       $i++;
// Das break nur wenn es höchstens einen Treffer geben kann.
       break; 
    }
}
if($i == 0){
  echo "Es gab keine Treffer bei der Suche nach dem Projekt $keyword!";
}
?>
User avatar
jakimo72
 
Posts: 151
Joined: 07. February 2005 13:25
Location: Hamburg-Barmbek

Postby jakimo72 » 21. September 2005 18:09

Als kleine Anmerkung:
Das abspeichern von Werten in Dateien
ist sicherlich naheliegend
wenn z.B. kein Datenbankserver
zur Verfügung steht, aber mit SQLite
ist es sicherlich einfacher und schneller.

P.S. SQLite ist bei PHP5 mit dabei, und kann
sofort benutzt werden.
User avatar
jakimo72
 
Posts: 151
Joined: 07. February 2005 13:25
Location: Hamburg-Barmbek


Return to PHP

Who is online

Users browsing this forum: No registered users and 8 guests