Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]czytanie z pliku
piasekps
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 26.03.2007

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


czesc

mam problem z czytaniem z plika textowego.
mianowicie zapisuje sobie do pliku wartosci oddzielone |
wczytuje je w za pomoca file i zliczajac kolejne linie rozdzielam
wartosci odseparowane |, wszystko dziala ok dopuki
nie pojawi sie nowa linia w danych wtedy 'szablon' sie rozwala
i zamiast wszystkich informacji w jednej linii rozwala mi sie na kilka
np. tak : 15|maj|karol jest u cioci
a ciocia jest u nas|15:16

normalnie w linii powinny byc 4 zmienne (oddzielone |)
a tak pojawiaja sie te zmienne w 2 liniach/wiecej

pomyslalem ze fajnie by bylo gdyby dalo sie czytac wartosc
pliku w sposob jaki jest dostepny w pythonie czyli: plik[poczatek:koniec]
i wtedy wycina mi tresc od 'poczatek' az do 'koniec'
wiem ze funkcja fread, pozwala czytac jakas dlugosc pliku ale czy da sie
w niej ustawic aby czytala od ktoregos znaku np od 20

jesli w jakiejs zmiennej wystepuje nowa linia aby sie pojawila rowniez po odczytaniu
mam nadzieje ze udalo mi sie to jakos wytlumaczyc
da sie cos takiego zrobic w php a moze da sie to zrobic jesce inaczej

pozdrawiam
p.s.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
brzuchalski
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 1
Dołączył: 2.01.2008

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


najprościej:
  1. <?php
  2. preg_match_all('/(^|*)|([^|]*)|([^|]*)|([^|]*)/s', file_get_contents('plik.txt'), $wynik, PREG_SET_ORDER);
  3. print_r($wynik);
  4. ?>

to tak, a lepiej:
  1. <?php
  2. preg_match_all('/([0-9]{1,2}:[0-9]{1,2}s{1}[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}|([^|]*)|([^|]*)|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})/s', file_get_contents('plik.txt'), $wynik, PREG_SET_ORDER);
  3. print_r($wynik);
  4. ?>

to czytaj tak wyrazenie regularne=(1-2cyfry ":" 1-2cyfry 1"spacja" 1-2cyfry "-" 1-2cyfry "-" 4cyfry | wszystko co nie "|" | wszystko co nie "|" | 1-3cyfry "kropka" 1-3cyfry "kropka" 1-3cyfry "kropka" 1-3cyfry),
ale pierwszy sposob powinien bez problemu pojsc tyle ze nie ma takiej kontroli nad danymi

inny wogole sposob na:
  1. <?php
  2. $tmp[] = array($czas, $autor, $comment, $serwer);
  3. $tmp[] = array($czas, $autor, $comment, $serwer);
  4. $tmp[] = array($czas, $autor, $comment, $serwer);
  5.  
  6. //zapisanie do pliku zamiast tekstu to zapisuj tekst jaki powstaje 
  7. $tmp = serialize($tmp);
  8.  
  9. //a potem czytaj
  10.  
  11. $tmp = unserialize(file_get_contents('plik.txt'));
  12. print_r($tmp); //tablica
  13.  
  14. ?>


Ten post edytował brzuchalski 3.01.2008, 20:10:29
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 13:47