Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przeszukiwanie plików frazami z drugiego pliku
adeks
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.03.2014

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


Witam serdecznie, mam pytanie w jaki sposób mogę przeszukac plik "plik.txt" pod względem występowania fraz zawartych w pliku "szukane.txt" Udało mi się uzyskać porządany efekt dla jednej frazy znajdującej się w szukane.txt natomiast w przypadku wiekszej ilosci nie działa. Dane zapisane w pliku szukane.txt są zapisane:

1) FRAZA PIERWSZA
2) FRAZA DRUGA
3) FRAZA TRZECIA


Każda fraza w osobnej linijce.
  1.  
  2.  
  3. $file = file('plik.txt');
  4.  
  5. $plik = fopen('szukane.txt','r');
  6.  
  7.  
  8. $szukaj = fread($plik, 8192);
  9.  
  10.  
  11. for($i = 0; $i <= count($file) - 1; $i++)
  12. {
  13.  
  14. if(strpos($file[$i], $szukaj) != false)
  15. {
  16.  
  17.  
  18. $check = true;
  19. echo 'Dostepny!';
  20. mail('test@o2.pl', "Znaleziona fraza", $szukaj);
  21. }
  22.  
  23. if(!isset($check))
  24. {
  25. //Wyświetlamy komunikat
  26. echo 'Brak wyników do wyświetlenia!';
  27. mail('test@o2.pl', "brak frazy", $szukaj);
  28. }
  29. }
  30.  
  31.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
kreatiff
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


Sprawdź co zawiera tablica $file. I czy czasem nie są to znaki nowej linii po każdym z wyrazów.
Jeśli są, dodaj flagę FILE_IGNORE_NEW_LINES do file i sprawdź czy skrypt zadziała.

Jeśli szukanie ma ignorować wielkość liter, to lepsze będzie stripos, a jeśli wyrazy zawierają znaki wielobajtowe (np. w UTF-8, w tym nasze ogonki), to mb_strpos/mb_stripos.
Go to the top of the page
+Quote Post
adeks
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.03.2014

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


Cytat(kreatiff @ 19.03.2014, 11:21:45 ) *
Sprawdź co zawiera tablica $file. I czy czasem nie są to znaki nowej linii po każdym z wyrazów.
Jeśli są, dodaj flagę FILE_IGNORE_NEW_LINES do file i sprawdź czy skrypt zadziała.

Jeśli szukanie ma ignorować wielkość liter, to lepsze będzie stripos, a jeśli wyrazy zawierają znaki wielobajtowe (np. w UTF-8, w tym nasze ogonki), to mb_strpos/mb_stripos.


Dzięki za odpowiedz, powiem tak, jezeli ustawie paramter szukaj na sztywno ladnie mi wyszukuje ten tekst w moim pliku, natomiast w przypadku wiekszej ilosci w szukane.txt czyli fraz ktorymi chce szukac nie szuka mi wogole nimi, tak jakby niemoglo dopisac do zmiennej szukaj. zrobilem te opcje rowniez z baza danych w tym przypadku szuka mi zawsze ostatnim wierszem z tabeli a nie cala tabela moj kod:
  1. if (mysql_connect($sql_host, $sql_user, $sql_password) and mysql_select_db($sql_baza)) {
  2. $zapytanie = mysql_query('SELECT * FROM hurtownia');
  3. if ($zapytanie) {
  4.  
  5. while ($wynik = mysql_fetch_array($zapytanie)) {
  6.  
  7.  
  8. $szukaj = $wynik['towar'];
  9.  
  10. }
  11.  
  12.  
  13.  
  14. } else {
  15. echo 'Nie można wykonać zapytania!';
  16. }


Oczywiscie wczesniej lacze sie z moja baza danych etc, chcialbym by zmienna $szukaj przypisywala poszczegolne wiersze albo z tabeli sql albo z pliku szukane.txt nie umie sobie z tym poradzic.

Ten post edytował adeks 19.03.2014, 11:50:43
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
zrobilem te opcje rowniez z baza danych w tym przypadku szuka mi zawsze ostatnim wierszem z tabeli a nie cala tabela


No bo w petli nadpisujesz sobie za kazdym razem zmienną $szukaj.....
Zrob w petli szukanie na bieżącą, to bedziesz mial dla kazdej frazy

  1. while ($wynik = mysql_fetch_array($zapytanie)) {
  2. $szukaj = $wynik['towar'];
  3.  
  4. //TUTAJ KOD NA SZUKANIE PO ZMIENNEJ $szukaj
  5. }


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: 23.08.2025 - 12:17