Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwarka w pliku txt
Forum PHP.pl > Forum > Przedszkole
Muadib
Probuje zrobić prostą wyszukiwarke wierszy ktore zostały dodane przez formularz do pliku txt np jerzeli w linijce znajdzie sie słowo chlor to chce by pokazał wszyskie linijki które zawierają to słowo...jedyne co mi sie udało to toi że pokazuje cały plik tekstowy
kod w pliku html wyglada:
  1. <?
  2. //czyta co 4 element listy
  3. $s = "Proby.txt";
  4. if( file_exists( $s ) )
  5. {
  6. //dodac element form bu się wysyłałoza pomocą guzika
  7. echo "<form method='get' action='probyzapis.php'>";
  8. echo '<table>';
  9. $uchwyt = fopen ($s,'r+');
  10.  
  11. $i = 1;
  12. while( ! feof( $uchwyt ) )
  13. {
  14. $buffer = fgets( $uchwyt, 4096 );
  15. if( $i % 4 == 0 )
  16. {
  17. echo '<tr>';
  18. echo '<td><input type="checkbox" name="d[]" value="'.$buffer.'" />'.$buffer.'</td>';
  19. echo '</tr>';
  20. }
  21. $i++;
  22. }
  23. fclose ( $uchwyt );
  24. echo '</table>';
  25. echo "<input type='text' name='dodatek' size='60'> Napisz coś<br>";
  26. //Guzik do wysyłania
  27. echo "<input type='submit' value='Prześlij'><br>";
  28. //zakończenie formularza
  29. echo '</form>';
  30. }
  31. else
  32. {
  33. echo 'File does not exist';
  34. }
  35.  
  36. echo "<form method='get' action='probywyszukaj.php'>";
  37. echo "<input type='text' name='szukaj' size='30'> Czego szukasz<br>";
  38. echo "<input type='submit' value='Pokasz co znalazłeś'><br>";
  39. echo "</form>";
  40.  
  41. ?>

natomiast pliku php który działa po nacisnieciu guzika
  1. <?php
  2.  
  3. $url=fopen("Kwas1.txt","r");
  4. print "<ol>n";
  5. while (!feof($url))
  6. {
  7. $w=fgets($url);
  8. $x = ereg($_GET["szukaj"],$w);
  9. if ($x == TRUE)
  10. print "<li>n";
  11. echo "<p>$w<br></p>";
  12. print "</li>n";
  13. }
  14. print "</ol>n";
  15. fclose($url);
  16.  
  17. ?>

będe wdzięczny za pomoc
Apo
  1. <?php
  2. $file = file('plik.txt');
  3. $c = count($file);
  4.  
  5. for($i=0; $i < $c, $i++) {
  6. if($file[$i] == 'szukana_fraza') {
  7. echo $file[$i];
  8. }
  9. else {
  10. echo 'Nie znaleziono';
  11. }
  12. }
  13.  
  14. ?>

I po co urzywasz co chwile echo :?:


Poprawiłem BB code
ActivePlayer
bregovic
Ładujesz plik używając file" title="Zobacz w manualu php" target="_manual() - funkcja zwraca tablice z liniami pliku. Potem loopujesz przez zwróconą tablicę i w spraedzasz czy szukane słowo znajduje się w linii za pomocą strpos" title="Zobacz w manualu php" target="_manual().

Będzie to wyglądać jakoś tak:
  1. <?php
  2. $goodLines = null;
  3. $lines = file($file);
  4. for($i = 0, $c = count($lines); $i <= $c; $i++)
  5. {
  6. if(strpos($searched, $lines[$i]) !== false)
  7. {
  8. $goodLines[] = $i;
  9. }
  10. }
  11. ?>


W ten sposób powinieneś mieć numery linii w tablicy $goodLines które zawierają szukane słowo $searched (chyba że się gdzieś pomyliłem).
Spirit86
Cytat(Apo @ 2005-11-13 19:46:47)
$file = file('plik.txt');
$c = count($file);

for($i=0; $i < $c, $i++) {
if($file[$i] == 'szukana_fraza') {
echo $file[$i];
}
else {
echo 'Nie znaleziono';
}
}

I po co urzywasz co chwile echo :?:

to co podałeś jest bez sensu to raz (Jeżeli będziesz miał 1000 linijek w pliku, to 9999 razy wyświetli Ci się Nie znaleziono, a raz, jeżeli oczywiście będzie to fraza której szukamy ta linijka. Tylko taki problem, że ta linijka MUSI BYĆ IDEALNIE taka sama jak fraza, czyli "szukam jakiegos stringu". Mozesz sie wzorowac na sposobie, ale musisz zmienić dużo rzeczy.
proponuję użyć eregi" title="Zobacz w manualu php" target="_manual, albo skorzystać z metody bregovic

Cytat(Apo @ 2005-11-13 19:46:47)
urzywasz
Muadib
Chyba cos żle robie >.<
  1. <?php
  2.  
  3. $file = "Kwas1.txt";
  4. $k = $_GET["szukaj"];
  5. $searched = strpos($k,$file);
  6. $goodLines = null;
  7. $lines = file($file);
  8. for($i = 0, $c = count($lines); $i <= $c; $i++)
  9. {
  10. if(strpos($searched, $lines[$i]) !== false)
  11. {
  12. $goodLines[] = $i;
  13. }
  14. }
  15.  
  16. ?>

dodałem zmienne oraz odniesienie sie ze wyraz ma być czytany z pola tekstowego, wiem że gupie putania zadaje ale dopiero zaczynam z php worriedsmiley.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.