Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 13.11.2006 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
Witajcie!
Zwracam się z prośbą o pomoc. Chciałbym napisać wyszukiwarkę, ktora wyszukuje w pliku tekstowym wyrażenia i zwraca cały wiersz w którym się ono znajduje. Wszystko oparte na pliku txt Struktura jednego wiersza wygląda tak imie | nazwisko | telefon | mail Jak dopisać żeby można było określic kryterium wyszukiwania czyli np. imie, nazwisko, tel, mail? Prosze o wskazówki |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
Najpierw sobie rozbij pierwszy wiersz po znaku separatora (w funkcjach string znajdziesz to, czego Ci trzeba), wynik potraktuj array_flip.
Potem iterując po każdym wierszu (również rozbijając) sprawdzasz sobie kluczem pola (indeksy zwróci Ci z tej pierwszej tablicy). |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%)
|
Dam Ci trochę kodu:
- tak parsujesz plik. Jak coś wyszukać w wierszu pliku? 1. Rozbijasz go funkcją explode wg | i używasz instrukcji list - otrzymujesz zgrabną tablicę asocjacyjną przechowującą wiersz pliku. 2. Nie wiem jak to ma wyszukiwać - dokładne dopasowanie, fragment, a może wyrażenie regularne? Przy dokładnym dopasowaniu robisz: - $klucz to np. imie, nazwisko, mail etc. Spróbuj sam coś napisać. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 13.11.2006 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
kod wyszukujący czyli zwykły formularz?
I drugie pytanko $pliczek ma być zmienną do pliku któy przeszukujemy tak ? np $pliczek =file("praca.txt"); |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%)
|
Jak chcesz się poduczyć, to w manualu masz opis wszystkich funkcji:
http://pl.php.net/manual/pl/function.fopen.php - plus praktyczne przykłady. File wczytuje plik do tablicy, fopen "otwiera" plik, jako parametr przyjmując ścieżkę: Poczytaj też o tablicach, bo to są podstawy pracy z PHP. Daj w kodzie: i spróbuj wyszukać w pliku samemu korzystając z w 90% gotowego kodu, jaki podałem. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 13.11.2006 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
Znalazłem pewien kodzik gdzieś na forum i przerobiłem go troche pod siebie i fajnie śmiga - jedyny problem to taki że szuka tylko po jednym kryterium
Jak dorzucić mu drugie kryterium aby można było wyszukać np i nazwisko i imię i żeby wyświetlał tylko te wiersze w których znajdzie imie i nazwisko ? |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%)
|
Ten kod jest do niczego, możesz mieć problem przy większym pliku lub na hostingu z mniejszym limitem pamięci i po co eregi dla każdego elementu tablicy jak szukamy jednego wyrażenia pasującego do wzorca?
Jak masz np. kryteria szukania:
I identyczną tablicę zawierającą poszczególne dane z pliku to żaden problem. Pytanie tylko jak to ma szukać? - czy jeśli mail będzie się zgadzał a nazwisko nie to ma taki rekord wyszukać? - czy jeśli ktoś poda tylko fragment maila to też ma wyszukać? Nie napisałeś nawet dokładnie jak to ma działać i spróbuj coś zrobić samemu, dostałeś gotowy kod pobierający linie z pliku + zestaw funkcji jakich masz użyć, wrzucasz linie z pliku do tablicy: (następna wskazówka dla Ciebie). Pozostaje tylko sprawdzić, czy tablica kryteria oraz dane zawierają elementy wspólne, jeśli tak to zapisujesz linię z pliku do innej tablicy i potem wyświetlasz. |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 13.11.2006 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
fragmenty tez ma znajdywać.
Weekend idę będe kombinował (IMG:style_emoticons/default/smile.gif) zrobiłem tak : ale w ogóle sie to kupy nie trzyma - w zasadzie posklejałem kod od ciebie
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%)
|
Znasz w ogóle podstawy PHP?
- tak wyświetlasz plik linia po linii, masz wyświetlić tylko te linie, które spełniają określone warunki, żeby to sprawdzić musisz zrobić z linii pliku tablicę:
- teraz w tablicy $dane masz całą linijkę pliku, tablica składa się z elementów, a każdy element to para klucz-wartość. Pozostaje sprawdzić, czy określony fragment tablicy $dane zawiera fragment tablicy $kryteria. Najlepiej zrobić to w pętli foreach: - pętla obróci się tyle razy, ile jest kryteriów szukania (czyli elementów tablicy kryteria) i za każdym obrotem funkcja strstr sprawdzi, czy podany szukany ciąg występuje w tablicy dane pod odpowiednim kluczem. Wystarczy umieścić to w odpowiednim miejscu pętli i dodać kod, który wykona określoną akcję po znalezieniu pasujących elementów. Poczytaj choć kurs podstawowy PHP, bo inaczej nigdy się nie dogadamy. I dalej nie wiem, czy jeśli kryteria są dwa to ma zwrócić wiersze zawierające oba, czy jedno z tych kryteriów. |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 13.11.2006 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
Pilsener dziękuje za cierpliwość.
Z php nie za bardzo sie znam - poszerzam wiedze - proszę o wyrozumiałość - każdy sie kiedyś uczył (IMG:style_emoticons/default/smile.gif) Wysypuje mi się już na samej próbie wyświetlenia calości pliku
Gdzie tu popełniam błąd ? |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%)
|
Musisz dać echo wewnątrz pętli, pętla obróci się tyle razy, ile jest wierszy w pliku. I nie musisz dawać "" w echo. I co to znaczy wysypuje się? Opisuj zawsze dokładnie problem.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 18:06 |