![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 143 Pomógł: 1 Dołączył: 14.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
Witam. Mam pewien plik dzialy.dat i zmienną $nazwa. Przykładowa truktura pliku, jednej linni to:
2||$nazwa||tekst1||tekst2[znak nowej linni] Musze napisać skrypt, który za sprawą zmiennej $nazwa zwróci mi numer linijki, w którym $nazwa się zawiera. Przykład? $linijka = [która linijka tekst] dla $nazwa = 'jest' i dla takiego pliku działy.dat skrypt powinien zwrócić wartość 3 (bo w 3 linijce): 2||blabla||tekst1||tekst2[znak nowej linni] 78|baerew||tekst1||tekst2[znak nowej linni] 4||jest||tekst1||tekst2[znak nowej linni] 3||trybtr||tekst1||tekst2[znak nowej linni] Czy ktoś wie jakbym mógł sie do tego zabrać wogóle? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Tak. Potrzebne funkcje
http://php.net/file http://php.net/strpos przeszukujesz kazda linie i znajdujesz to co chcesz. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
nie rozumiem czy ta liczba na początku wskazuje nr linii? bo jak tak to wystarczy to explodem rozwalić.
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 143 Pomógł: 1 Dołączył: 14.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
Numerek na początku to nie numer linni, wtedy to by było zbyt proste
![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
można tak: (piszę od ręki i może nie działać - ale masz istotę)
Jeżeli linia == 0 to znaczy że pozycja nie istnieje. Zastanawiam się tylko, do czego Ci taka funkcja... -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 143 Pomógł: 1 Dołączył: 14.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
Numer linni potrzebny mi był po to, aby właśnie z linijki o tym numerze pobrać zmienne. Właśnie... tyle że jak mam już numer linni to jak umieścić te dane w tablicy? każda zmienna w pliku oddzielona jest ||
A to właśnie obrazuje po co mi jest ten skrypt... robię download na swojej stronie, nie chce używać bazy dlatego zaplanowałem, że po wybraniu odpowiedniej linijki skrypt załaduje dane coś w stylu jak na schemacie: ![]() Ten post edytował axwell 29.10.2008, 23:51:10 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
... tyle że jak mam już numer linni to jak umieścić te dane w tablicy? każda zmienna w pliku oddzielona jest ||
dla przykładu jest to 22 linia.. przy pomocy polecenia list($pobrano,$plik,$koment,$gat) tablicę będziesz miał od razu rozbita na poszczególne zmienne po zatym polecam skorzystanie z mniejszej bazy danych SQLite ^-~ Ten post edytował zegarek84 30.10.2008, 03:44:54 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 143 Pomógł: 1 Dołączył: 14.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
świetnie, o to mi chodziło, a gdybym chciał jednak umieścić te dane w tablicy?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 42 Dołączył: 12.08.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
wystarczy przypisać linijkę jedną tak jak to zrobił l0ud - a dokładniej zamiast:
Kod list($pobrano,$plik,$koment,$gat) = explode('||',fgets($uchwyt)); zapisać: Kod $jakas_tablica= explode('||',fgets($uchwyt)); do poszczególnych elementów tablicy będziesz się odwoływał poprzez $jakas_tablica[0]...$jakas_tablica[1].... itd.... możesz jeszcze gdzie indziej "porzucać" zmienne... w sumie wystarczyło przerobić to co zaproponował l0ud - tyle, że tamto jest dobre dla malych plików z funkcją file() - przy większych będzie to i wolno działało i może doiść do przepełnienia pamięci - moim zdaniem lepiej było użyć fgets() które przeszukuje plik wiersz po wierszu i także umożliwia podliczenie tych wierszy, lub skorzystać z młodszej funkcji fgetcsv() dzięki której ni e musielibysmy urzywać funkcji explode() ... funkcją list() któ rą ja użyłem po prostu przypisywało się elementy tablicy do zmiennych... polecam przeglądanie funkcji i trochu poczytanie w manualu: http://php.net.pl/manual/pl/index.php - cześciowo spolszczony, sporo też po angielsku - jeśli szukasz opisu konkretnej funkcji php to wpisz jej nazwę w polu szukania... poza tym poważnie poczytaj o bazie SQLite - jest ona przechowywana w jednym pliku - najlepiej zainteresuj się od razu SQLite 3 i nie czytaj na temat funkcji bezpośrednich do tej bazy tylko poczytaj jeszcze o PDO które jest uniwersalne do wielu baz i to na przyszłość by Ci się bardzo przydało... do bazy SQLite możesz się odwoływać bezpośrednio zapytaniami SQL, sortować wyniki i inne - podczas gdy operując na płaskich bazach danych opartych o notatnik wszystko musisz jakby przeżąglować przez php... Ten post edytował zegarek84 30.10.2008, 10:35:48 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 17:07 |