Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z tablicami
Fifi209
post 27.04.2009, 18:37:06
Post #1





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Mam problem z tablicami, pierwszy raz mi się to zdarzyło. ;d

Pobieram dane ze strony, wszystko ładuje do tablic. Potem robię "porządek".
Poprzez funkcję print_r()" title="Zobacz w manualu PHP" target="_manual wyświetlam i jest wszystko ok...
Ale gdy próbuję się dostać poprzez klucz to nic się nie dzieje (nawet błędu ;( )

Kod:

index.php

  1. <?php
  2. include('user.php');
  3. $info = userInfo($_GET['nick']);
  4.  
  5. echo $info['poziom'];
  6. ?>



user.php jest nieważny, odpowiada za pobranie informacji o danym graczu i wrzucenie do tablicy

Wygląd tablicy: (przykładowo)
Kod
Array
(
    [profesja] => Druid
    [plec] => Mezczyzna
    [poziom] => 411
    [mlvl] => 113
)


print_r()" title="Zobacz w manualu PHP" target="_manual jak i
Kod
foreach()
doskonale radzą sobie z obsługą tej tablicy.

Miał ktoś podobny przypadek?

@edit
Zapomniałem powiedzieć, funkcja poprawnie zwraca wszystko do zmiennej $info winksmiley.jpg
Hmm, gdzie leży przyczyna? biggrin.gif

@edit2
var_dump()" title="Zobacz w manualu PHP" target="_manual też sobie z nią poradził...
Kod
array(4) { ["profesja"]=>  string(26) "Druid" ["plec"]=>  string(48) "Mezczyzna" ["poziom"]=>  string(42) "411" ["mlvl"]=>  string(42) "113" }



@edit3
Dodam ten plik user.php

Jest tylko inny link niż u mnie, a tak się niczym nie różni.
Jak widać pobieram dane i wrzucam sobie do tablicy player.
  1. <?php
  2. function userInfo($nick) {
  3.        $user = file_get_contents('http://xxx.pl/'.urlencode($nick));
  4.        $user = str_replace(array(':', 'ł', 'ć', 'ę', 'ż', '-'), array('', 'l', 'c', 'e', 'z', ''), $user);
  5.        preg_match_all('/<td width=\"50%\">([a-zA-Z0-9 ]{5,9})</td>/', $user, $player, PREG_PATTERN_ORDER);
  6.        $info[] = array($player[0][0] => $player[0][1]);
  7.        preg_match_all('/<td width=\"[0-9]+%\" bgcolor=\"#4F4F4F\">([a-zA-Z0-9 ]+)</td>/', $user, $player, PREG_PATTERN_ORDER);
  8.        $info[] = array($player[0][0] => $player[0][1], $player[0][2] => $player[0][3], $player[0][4] => $player[0][5]);
  9.        
  10.        unset($player);
  11.        $player=array();
  12.        
  13.            foreach($info as $key => $value) {
  14.                foreach($value as $key2 => $value2) {
  15.                    $player[strtolower($key2)] = $value2;
  16.                }
  17.            }
  18.  
  19.        return $player;
  20.    }
  21. ?>


Gdzie ja robię błąd? Niby tablica jest itd. ale nie mogę przez te klucze się do niej dostać.

Ten post edytował fifi209 27.04.2009, 18:37:45


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
#luq
post 27.04.2009, 20:06:08
Post #2





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Ogólnie nie możliwe winksmiley.jpg

Jedyne co mi przychodzi na myśl to coś z zasięgiem, nie wiem dlaczego i w jaki sposób ale po prostu, strzelam.
print_r używałeś w funkcji czy poza nią?

Ogólnie sprawdź tak:
  1. <?php
  2. echo $GLOBALS['info']['poziom'];
  3. ?>


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
Fifi209
post 27.04.2009, 20:18:57
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Używałem poza funkcją.

Też uznałem, że jest to po prostu niewykonalne. ;p
Zaraz będę testował to co podałeś (bo pobieram statystyki ze strony i z 30 minut mi na tym zejdzie a nie chciałbym apache zabić)

I dam edita.

@edit

Twoja wersja też nie działa.

@edit2

Postanowiłem przy tworzeniu tablic użyć urlencode i echo udało się. Okazało się że miałem jakieś dziwne znaki w tym taki html (nie wiem skąd się tam zabrały)

Wszystko działa.
Temat do zamknięcia.

Ten post edytował fifi209 27.04.2009, 21:41:14


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
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: 13.07.2025 - 22:46