Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Przeszukowanie pliku
Morale
post
Post #1





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


Witam, jak przeszukać plik tekstowy, by po wyszukaniu pokazywało numer linii, w której znajduje się szukany tekst oraz by pokazywało wszystkie linie, w których znajduje się szukany tekst, a nie tylko jedną.

Mój plik:
Cytat
||1|abcisdofdsf||l24323||
||2||dlldldl||qwerty||


Dodatkowo jakby też mógł przeszukiwać pomiędzy pierwszymi dwoma kreskami, a drugimi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Użyj funkcji file(); do pobrania zawartości pliku jako tablicy. Przeszukaj każdy elemet tablicy pod kątem Twojego wyrażenia. Numer elementu jest jednocześnie numerem linii. Pozdrawiam!
Go to the top of the page
+Quote Post
Morale
post
Post #3





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


Ale jaką funkcją przeszukać (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
ayeo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Nie wiem co będzie najlepsze w Twoim przypadku strpos(); lub preg_match(); z preg_quote();
Go to the top of the page
+Quote Post
Morale
post
Post #5





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


Ja korzystałem już z preg_match, ale on pokazywał mi tylko jeden wynik, a ja chcę tyle ile tych szukanych tekstów istnieje.
Go to the top of the page
+Quote Post
webdice
post
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(Morale @ 22.04.2008, 13:00:37 ) *
Ja korzystałem już z preg_match, ale on pokazywał mi tylko jeden wynik, a ja chcę tyle ile tych szukanych tekstów istnieje.


Użyj preg_match_all" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
pyro
post
Post #7





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Napisałem prostą przeszukiwarke zawartości pliku, mysle ze to moze pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

  1. <?php
  2.  
  3. $plik = file('plik.txt');
  4. function przeszukaj($wartosc)
  5. {
  6. $szukana_fraza = 'fraza';
  7. if(stristr($wartosc, $szukana_fraza))
  8. { return true; }
  9. else
  10. {return false; }
  11. }
  12. array_walk($plik, 'przeszukaj')
  13.  
  14. // jesli nie znajdzie danej frazy to zwroci false'a
  15. // jesli znajdzie - true
  16.  
  17. ?>


oo sorry nie zauwazylem ze chcesz wiedziec ile razy dana fraza byla

W zwiaku z tym napisalem nowa przeszukiwarke (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
  1. <?php
  2.  
  3. $i = 0;
  4. $plik = file('plik.txt');
  5. $szukana_fraza = 'fraza';
  6. foreach($plik as $linia)
  7. {
  8.  
  9. if(stristr($linia, $szukana_fraza))
  10. {
  11. $i += 1;
  12. }
  13. else
  14. {
  15. continue;
  16. }
  17. }
  18.  
  19. // teraz zmienna $i ma ilosc powotrzen wystepowania danej frazy
  20.  
  21. ?>

Zajelo to mniej niz myslalem...

Ten post edytował pyro 22.04.2008, 13:09:51
Go to the top of the page
+Quote Post
webdice
post
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




~pyro, jak ten pierwszy kod działa to jestem pod wrażeniem, poczytaj o dostępności zmiennych w funkcjach. Co do drugiego kodu popraw 12 linie.
Go to the top of the page
+Quote Post
pyro
post
Post #9





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


Cytat(webdicepl @ 22.04.2008, 14:08:05 ) *
~pyro, jak ten pierwszy kod działa to jestem pod wrażeniem, poczytaj o dostępności zmiennych w funkcjach. Co do drugiego kodu popraw 12 linie.


rzeczywiscie, wyedytowalem troche kod i zapomnialem przeniesc zmiennej do wnetrza funkcji, ale juz poprawilem, a co jest nie tak w 12 linijce drugiego kodu?
Go to the top of the page
+Quote Post
Morale
post
Post #10





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


Ale ja chcę, żeby on powiedział mi, w jakiej linii jest dana fraza, a nie ile plik ma linii.
Go to the top of the page
+Quote Post
ayeo
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


  1. <?php
  2. $plik = file('plik.txt');
  3. $szukana_fraza = 'fraza';
  4. $lines_no = array();
  5.  
  6. foreach($plik as $numer => $linia)
  7. {
  8. if(stristr($linia, $szukana_fraza))
  9. {
  10. $lines_no[] = $numer;
  11. }
  12. }
  13.  
  14. print_r($lines_no);
  15. ?>


Pozdrawiam!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 14:49