![]() ![]() |
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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) w moim przypadku jest to po prostu licznik pobrań
|
|
|
|
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... |
|
|
|
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: (IMG:http://images44.fotosik.pl/25/2189d7668af7b2ff.gif) 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 |
|
|
|
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 |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 00:55 |