![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 269 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Na stronie parkiet.pl jest link do danych z sesji giełdy.
Chciałbym z tego całego tekstu wybrac np dla wartosci : WIG,20070517,59764.2,60247.23,59218.2,59350.3,56311389 jedynie 59764.2 Jakich funkcji użyć ? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
google.pl->wyrazenia regularne php
-------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 269 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wiem co to sa wyrazenia regularne. Nie wiem natomiast z jakiej funkcji skorzystac by wydobyc dane ze srodka txt : WIG,20070517,59764.2,60247.23,59218.2,59350.3,56311389
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 19.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
użyj funkcji preg_match_all
-------------------- // ...
Co nieco o mnie ;) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 269 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mozesz mała podpowiedź ?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
free: skoro znasz wyrazenia regularne i masz manuala do php i znasz nazwe funkcji (preg_match tez moze byc) to juz wiesz jak to masz zrobic.
Mozesz tez uzyc explode(). -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#7
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Wiem co to sa wyrazenia regularne. Nie wiem natomiast z jakiej funkcji skorzystac by wydobyc dane ze srodka txt : WIG,20070517,59764.2,60247.23,59218.2,59350.3,56311389 file_get_contents" title="Zobacz w manualu PHP" target="_manual plus jak napisał ~dr_bonzo explode" title="Zobacz w manualu PHP" target="_manual, ewentualnie przyda Ci się jeszcze pętla. Ten post edytował webdicepl 18.05.2007, 18:24:46 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 269 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Funkcja file_get_contents okazała sie bardzo przydatna. Nie wiem jak optymalnie z tego ciagu znakow wydobyc interesującą mnie linijke:
WIG,20070517,59764.2,60247.23,59218.2,59350.3,56311389 jak to bede mial ją już w zmiennej to sobie poradzę bo użyję:
A tak sie zastanawiam jak najoptymalniej z tego ciągu znaków wydobyć te linijkę |
|
|
![]()
Post
#9
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
a jakie inne dane masz w tym pliku?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 269 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Podałem link
A oto część danych z tego pliku : Kod ... LDS,20070518,1.17,1.17,1.17,1.17,4353 WIG,20070518,59457.59,59952.26,59409.38,59952.26,60590951 WIG20,20070518,3490.02,3516.38,3477.79,3515.77,666856 mWIG40,20070518,5116.26,5194.57,5115.34,5194.57,8198479 ... I chce wydobyć np linijkę WIG,20070518,59457.59,59952.26,59409.38,59952.26,60590951 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Otworzyć plik funkcją file" title="Zobacz w manualu PHP" target="_manual. Jeżeli chcesz wyciągnąć WIG, to po prostu sprawdzasz po kolei, która linijka zaczyna się od "WIG,". Można to zrobić funkcją substr" title="Zobacz w manualu PHP" target="_manual na przykład... Jeżeli nie chcesz całego pliku do tablicy pchać, to musisz sobie utworzyć bufor, do którego po kolei będziesz zczytywał całe linijki...
-------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 269 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
substr tu nie pomoze, bo ten plik jest zmienny co 15 minut sie zmienia i linijki tez sie zmienia.
ale stala jest nazwa poszczegolnych np WIG itp Wiec tu trzeba by raczej poprzez wyrazenia regualrne i z tym mam teraz najwiekszy problem. |
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
W tym rzecz, że pomoże... Otwierasz plik funkcją file" title="Zobacz w manualu PHP" target="_manual, która zwraca tablicę, w której dostajesz plik rozłożony na linie. Następnie po kolei sprawdzasz każdą linijkę czy zawiera na początku "WIG,", jeżeli tak, to rozkładasz ją i masz wynik jaki chciałeś.
-------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 269 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Rzeczywiście działa. Jak używam funkcji file_get_contents zamiast file to nie działa /czemu tak sie dzieje?/
Nie rozumiem za bardzo lini nr 5 -- czemu deklarujemy zmienna z pustym polem $line = ''; Dlatego ze w naszym przypadku linie sa tak od siebie oddzielone ? W lini 8 na sztywno definiowane jest ilosc liter na 4 wraz z przecinkiem :
czy mozna by to jakos obejsc, by skrypt nie byl zalezny od tej liczby tylko automatycznie pobieral całą linię, gdzie jest słowo w naszym przypdaku WIG ? Chcialbym to rozwinac do dynamicznego wyswietlania wartosci i zamiast WIG skrypt bedzie pobieral nazwe ze zmiennej, ale do tego potrtzebne jest obejscie sztywno deklarowanej wartości substr($lines[$i], 0, 4) |
|
|
![]()
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
1. Bo funkcja file zwraca tablicę, a fil_get_contents treść pliku w postaci stringa...
2. Deklarujemy pustą zmienną $line, żeby nie tworzyć jej w pętli - inny zakres... 3. To tylko sprawdzenie od czego zaczyna się ta linijka, żeby wybrać odpowiednią. A są trzy litery i przecinek, żeby nie pobrać przypadkiem WIG20... Musisz mieć zapisane nazwy indeksów gdzieś, to po pierwsze. A z resztą, najlepiej popatrzeć na kod...
Regexem też można, tylko po co... -------------------- |
|
|
![]()
Post
#16
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 269 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ludvik dziekuje za wytlumaczenie. W 8 lini jest błąd poprawilem na $start = "$index.','.";
Po poprawieniu skrypt nie wyswietla danych wiec cos jest nie tak. Webdicepl ciekawe rozwiazanei z wyrazeniem regularnym. Tyl;ko ze dane pokazuje w postaci tablicy Array. Gdy dodaje kod :
to jest niepoprawnie. gdy daje funkcje file zamiast file_get_contents pojawia sie blad-komunikat ze musi byc string w wartosci funkcji preg_match. |
|
|
![]()
Post
#18
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Nie mam teraz dostępu do PHP, ale robisz to mniej więcej tak:
EDIT: zobacz jak jest zbudowana tablica i przypisz wartości do zmienny podobnie jak podałem wyżej. Ten post edytował webdicepl 21.05.2007, 13:22:15 |
|
|
![]()
Post
#19
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Racja, w ósmej linii jest błąd, ale powinien być poprawiony na:
-------------------- |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 269 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ludvik poprawiłem te linijke tak jak napisales i jest OK.
Webdicel czy twoja funkcje preg_match mozna zastapic inna by poznij uzyc funkcji file zamiast zwracajacej stringa file_get_contents ? w dotychczasowym kodzie jest jakiś błąd logiczny bo otrzymuję zły wynik [0] w postaci tablicy : Array ( [0] => WIG,20070521,60286.67,61050.47,60286.67,61050.47,61496700 [1] => 20070521 [2] a przeciez [1] =>powinien byc WIG, [2]=>20070521 tymczasem do [1] przypisdane jest wszystko. chyba w wyrazeniu regularnym jest cos nie tak. Ten post edytował free 21.05.2007, 17:53:05 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 04:05 |