Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z tablicami
Forum PHP.pl > Forum > Przedszkole
Fifi209
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ć.
#luq
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. ?>
Fifi209
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.
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.