Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Array() z preg_match_all, Nie działa tak jak powinno
freqfreq
post 15.02.2008, 19:23:14
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 8.01.2008

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


Witam.
Piszę skrypt do zapisywania danych ze strony giełdy papierów wartościowych do tablicy array().
Jeśli odwiedzicie stronę (http://www.gpw.pl/wyniki/tabelki.asp?Indeks=wszystkie_akcje_cj&lang=PL) zauważycie że dane są w sporej tabeli z pewną stałą ilością kolumn i sporą ilością wierszy.
Mój skrypt wygląda następująco:
Kod
         <?php
        
           function GPWparse(){
          
           $file = file_get_contents('http://www.gpw.pl/wyniki/tabelki.asp?Indeks=wszystkie_akcje_cj&lang=PL');
          
           $file = strip_tags($file, '<table><tr><td>');
           $file = str_replace(" onMouseOut=offColortr(this); onMouseOver=onColortr(this);", "", $file);
           $file = preg_replace("/ class=[a-z0-9]+/", "", $file);
           $file = preg_replace("/ _narrow/", "", $file);
           $file = preg_replace("/_narrow/", "", $file);
          
           preg_match_all("/<TR>\r?\n?\r?\n?\x20+?<TD><\/TD>\r?\n?\x20+?<TD>([a-zA-Z0-9\.\-]+)<\/TD>\r?\n?\r?\n?\x20+?<TD>([a-zA-Z0-9\.\-]+)<\/TD>\r?\n?\r?\n?\x20+?<TD>([0-9\:]*)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><TD>([0-9\,\-\x20]+)<\/TD><\/TR>/im", $file, $matches);
          
           return $matches;
          
           }
          
           print('<pre>');
           print_r(GPWparse());
           print('</pre>');
        
         ?>


Pobiera on z każdego wiersza zawartości ustalonych komórek tabeli.
Kiedy jednak wyświetlimy tą tablicę array() zobaczymy że dane nie są pogrupowane przez funkcję preg_match_all w sposób umożliwiający ich dalsze sensowne użycie.
Chodzi mi o to, aby dane w tabeli zapisane były w następujący sposób:
Cytat
Array
(
[KOLUMNA 1] => Array
(
[KOMÓRKA 1] => WARTOŚĆ
[KOMÓRKA 2] => WARTOŚĆ
[KOMÓRKA 3] => WARTOŚĆ
[KOMÓRKA 4] => WARTOŚĆ
...ITD...
)
[KOLUMNA 2] => Array
(
[KOMÓRKA 1] => WARTOŚĆ
[KOMÓRKA 2] => WARTOŚĆ
[KOMÓRKA 3] => WARTOŚĆ
[KOMÓRKA 4] => WARTOŚĆ
...ITD...
)
[KOLUMNA 3] => Array
(
[KOMÓRKA 1] => WARTOŚĆ
[KOMÓRKA 2] => WARTOŚĆ
[KOMÓRKA 3] => WARTOŚĆ
[KOMÓRKA 4] => WARTOŚĆ
...ITD...
)
...ITD...
)

Po wielu próbach nie udało mi się sformatować tablicy w żądany sposób więc zwracam się o pomoc.

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nowotny
post 15.02.2008, 19:37:38
Post #2





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(freqfreq @ 15.02.2008, 19:23:14 ) *
Kiedy jednak wyświetlimy tą tablicę array() zobaczymy że dane nie są pogrupowane przez funkcję preg_match_all w sposób umożliwiający ich dalsze sensowne użycie.

Ależ "dalsze sensowne użycie" jest jak najbardziej możliwe... smile.gif z czym masz problem dokładnie...
Go to the top of the page
+Quote Post
freqfreq
post 15.02.2008, 19:40:58
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 8.01.2008

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


Cytat(nowotny @ 15.02.2008, 19:37:38 ) *
Ależ "dalsze sensowne użycie" jest jak najbardziej możliwe... smile.gif z czym masz problem dokładnie...


Hmm? To jak dostać się do wartości konkretnej komórki?
Go to the top of the page
+Quote Post
nowotny
post 15.02.2008, 19:43:50
Post #4





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Jakiej komórki...? :/
Go to the top of the page
+Quote Post
freqfreq
post 15.02.2008, 19:48:46
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 8.01.2008

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


O matko.... idę wypić.
Mam nowe pytanie - jak obsługiwać suwaki w przeglądarce?... nie zjechałem na dół xX
sciana.gif wstydnis.gif withstupidsmiley.gif

EDIT:
Nigdy o nic tak naprawdę nie pytałem, to był balon meteorologiczny i mnie tu nie ma. Hmm co ja tu robię?

Ten post edytował freqfreq 15.02.2008, 19:50:16
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 11:02