Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Preg_match - wyszukanie tekstu
Forum PHP.pl > Forum > Przedszkole
kuba_pilach
Dobra, mam problem z wyciągnięciem danych... Mógłby ktoś pomóc? Chodzi mi dokładnie o to, że z długiego tekstu mam wyczytać, dokładnie między takiej dokładnej długości linii...
Kod
______________________________________________________________________;    
Suma wartości netto;  ;  88.370,18;    
Podatek VAT naliczony-pozostałe zakupy 23%;  ;  20.325,14;    
_______________;

johny_s
moglbys to napisac jeszcze raz innymi slowami? smile.gif
kuba_pilach
Chodzi mi, by do jednej zmiennej wczytać cały tekst, pomiędzy:
Kod
______________________________________________________________________;


i

Kod
_______________;
modern-web
explode

edit: albo jak lubisz wyrażenia regularne - preg_match_all
kuba_pilach
No nie bardzo... Bo to mi waliduje z czym innym... Potrzebuję przy użyciu preg_matcha,albo czegoś podobnego.
modern-web
Z czym? Przecież dane, które chcesz wyciąć mają charakter ciągły, a explode zwróci Ci to w tablicy; jaki problem?
johny_s
  1. $txt = '
  2. ble ble ble
  3. ______________________________________________________________________;
  4. Suma wartości netto; ; 88.370,18;
  5. Podatek VAT naliczony-pozostałe zakupy 23%; ; 20.325,14;
  6. _______________;
  7. ble ble ble
  8. ';
  9.  
  10. $pat = '/(_)+;(?P<dane>(.)*[^_])(_)+;/s';
  11.  
  12. $dane = false;
  13. if(preg_match($pat, $txt, $m)) {
  14. $dane = $m['dane'];
  15. }
  16. var_dump($dane);

kuba_pilach
Bo to co podałem, znajduje się w ostatnim elemencie tablicy, a nie potrafię wykryć, kiedy jest ostatni, a kiedy nie...
Mam problem z tym:
Kod
00005 Koszty frachtu (patrz zał.);    
0070166091; ;  / 02.09.2011;    
7000265063; ;  / 00020;    
1; ;  JD; ;  V7 (23%); ;  5.222,95;    
5.222,95; ;  1.201,28; ;  6.424,23;    
00006 Koszty frachtu (patrz zał.);    
0070166092; ;  / 02.09.2011;    
7000265069; ;  / 00020;    
1; ;  JD; ;  V7 (23%); ;  6.466,51;    
6.466,51; ;  1.487,30; ;  7.953,81;    
00007 Koszty frachtu (patrz zał.);    
0070166094; ;  / 02.09.2011;    
7000265074; ;  / 00020;    
1; ;  JD; ;  V7 (23%); ;  5.720,38;    
5.720,38; ;  1.315,69; ;  7.036,07;    
00008 Koszty frachtu (patrz zał.);    
0070166096; ;  / 06.09.2011;    
7000265084; ;  / 00020;    
1; ;  JD; ;  V7 (23%); ;  5.298,93;    
5.298,93; ;  1.218,75; ;  6.517,68;    
00009 Koszty frachtu (patrz zał.);    
0070166099; ;  / 01.09.2011;    
7000265120; ;  / 00020;    
1; ;  JD; ;  V7 (23%); ;  5.228,75;    
5.228,75; ;  1.202,61; ;  6.431,36;    
00010 Koszty frachtu (patrz zał.);    
0070166737; ;  / 01.09.2011;    
7000265953; ;  / 00020;    
1; ;  JD; ;  V7 (23%); ;  5.470,74;    
5.470,74; ;  1.258,27; ;  6.729,01;


Potrzebuję, po każdym frachcie przejść... Aż do końca elementu tablicy, jak to uczynić? Jakiej pętli użyć, bym mógł skorzystać z danych z frachtu? bo ich może być 300, a może ich być 400

PS. Chodzi o to, że po kadym frachcie, ma wypisać jeden wiersz do pliku. Zawsze fracht zajmuje 5 linijek

Czyli nikt nie wie, jak to zrobic?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.