Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyszukiwarka w pliku txt
Muadib
post 13.11.2005, 19:25:16
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 9.11.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Apo
post 13.11.2005, 19:46:47
Post #2





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

Ostrzeżenie: (0%)
-----


  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


Ten post edytował ActivePlayer 13.11.2005, 20:32:28
Go to the top of the page
+Quote Post
bregovic
post 13.11.2005, 20:01:30
Post #3





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

Ostrzeżenie: (0%)
-----


Ł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).


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
Spirit86
post 13.11.2005, 20:02:24
Post #4





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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


Ten post edytował Spirit86 13.11.2005, 20:04:37


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
Muadib
post 13.11.2005, 20:14:54
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 9.11.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 08:56