Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] pobranie stanów konta
rybosom
post
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 6.09.2004

Ostrzeżenie: (20%)
X----


Witam, poprzez curl loguję się do mBanku i pobieram wszystko (cały html), następnie usuwam html i spacje poprzez

  1. $dane = preg_replace('/\s\s+/', ' ', strip_tags(curl_exec($html)));


Output wygląda to mniej więcej tak (1 linijka tekstu):
Kod
mBank mBankSerwis transakcyjny ? Wyloguj sięWiadomo¶ciOferta dla CiebieWnioskiRachunkiKartyKredytyInwestycjeLokatyUbezpieczeniaEmeryturaTelefonia
Operacje do potwierdzeniaUstawienia i konfiguracjaKontakt z mLini± Aby prawidłowo korzystać ze stron systemu transakcyjnego, należy wł±czyć w przegl±darce obsługę JavaScript. Jeżeli nie wiesz jak to zrobić, skorzystaj z pomocy jej producenta. xxx xxx Udane logowanie : 02-01-2012, 19:27Nieudane logowanie : 13-01-2010, 09:50 ?Oferta dla Ciebie Jeste¶ naszym stałym Klientem, dlatego przygotowali¶my dla Ciebie specjaln± ofertę: Karta kredytowa z limitem do 2800 - oferta ważna do 2012-01-16 - Kliknij i wybierz kartę dla siebie. Zyskaj dodatkowe ¶rodki zawsze pod ręk±...Kredyt gotówkowy z limitem do 14000 - oferta ważna do 2012-01-16 - Kliknij lub zadzwoń a pieni±dze trafi± na Twoje konto w ci±gu 15 minut...Kredyt odnawialny/Podw­yższenie do kwoty 2800 - oferta ważna do 2012-01-16 - Złóż wniosek i zyskaj dodatkowe pieni±dze na Twoim eKONCIE, dostępne w każdej chwili... Zamknij ?Dostępne rachunki Numer rachunkuSaldoDostępne ¶rodkieKONTO 23 1140 2004 0000 xxxx xxxx xxxx215,09 PLN215,09 PLNPrzelew jednorazowyPrzelew własnyHistoria operacjiOdbiorcy zdefiniowanieMAX EUR 36 1140 2004 0000 xxxx xxxx xxx0,00 EUR0,00 EURPrzelew własnyHistoria operacjiOdbiorcy zdefiniowanieMAX plus 50 1140 2004 0000 xxx xxx xxx0,00 PLN0,00 PLNPrzelew własnyHistoria operacjiOdbiorcy zdefiniowaniSuma215,09 PLN0,00 EUR215,09 PLN0,00 EUR


Jak w prosty sposób pobrać salda i dostępne środki 3 rachunków oraz ich sumy, łącznie 8 stringów?

Poprzez preg_match może?

Ten post edytował rybosom 2.01.2012, 19:43:25
Go to the top of the page
+Quote Post
Bartłomiej Skwar...
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 9
Dołączył: 2.01.2012

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


W wyniku działania swojej funkcji otrzymałeś jedną wielką masę.
Moim zdaniem powinieneś nie usuwać HTMLa, a parsować plik korzystając z jego struktury.
Stan konta może być ujędy w divie lub spanie, np:
  1. <span class="DostepneSrodki">1500</span>
W takim przypadku możesz użyć preg_match i zapisywać do zmiennych zawartość znaczników html używając wyrażeń regularnych, jak np.
  1. preg_match('/<span[^>]*class="DostepneSrodki">(.*?)<\\/div>/i',$zmienna1,$zmienna2);


Ten post edytował Bartłomiej Skwara 2.01.2012, 20:54:05
Go to the top of the page
+Quote Post
by_ikar
post
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


A po co usuwałeś puste znaki i kod html? Pokaż kawałek kodu html gdzie masz salda, dostępne środki.
Go to the top of the page
+Quote Post
rybosom
post
Post #4





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 6.09.2004

Ostrzeżenie: (20%)
X----


wtedy jedyną częścią wspólną dla każdego salda jest <p class="Amount">
Go to the top of the page
+Quote Post
Bartłomiej Skwar...
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 9
Dołączył: 2.01.2012

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


  1.  
  2. $string = 'POZOSTAŁY HTML<p class="Amount">200</p>POZOSTAŁY HTML<p class="Amount">800</p>POZOSTAŁY HTML<p class="Amount">300</p>POZOSTAŁY HTML';
  3. preg_match_all('/<p[^>]*class="Amount">(.*?)<\\/p>/i',$string,$wynik);
  4. print_r(end($wynik));
  5.  


I otrzymujesz tablicę:
  1. (
  2. [0] => 200
  3. [1] => 800
  4. [2] => 300
  5. )
Go to the top of the page
+Quote Post
Bartłomiej Skwar...
post
Post #6





Grupa: Zarejestrowani
Postów: 17
Pomógł: 9
Dołączył: 2.01.2012

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


Przeleć otrzymaną tablicę pętlą foreach usuwając z wartości tagi HTML i rzutując typ danych do liczby zmiennoprzecinkowej, np.

  1.  
  2. $gotowe_dane = array();
  3.  
  4. foreach($wynik as $string){
  5. array_push($gotowe_dane, (float)strip_tags($string));
  6. }
  7.  
  8. print_r($gotowe_dane);
  9.  

Otrzymasz zera, tam gdzie na ma liczb (lub jest zero) oraz liczby określające stan konta. Pozostaje Ci wybrać to, co jest potrzebne.
Go to the top of the page
+Quote Post

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: 24.08.2025 - 11:40