Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pobieranie zawartości
Forum PHP.pl > Forum > Przedszkole
lanceq
Witam, chciałbym zdalnie pobrać zawartość pewnego pliku na zewnętrznym serwerze.
Plik z którego chce pobierać znajduje się na: http://ot.lanceq.pl/config/serverstatus

Zawartość tego pliku wygląda tak:

serverStatus_checkInterval = "303"
serverStatus_lastCheck = "1341746105"
serverStatus_online = "1"
serverStatus_players = "0"
serverStatus_playersMax = "1000"
serverStatus_uptime = "0h 18m"
serverStatus_monsters = "724"

(te wartości się zmieniają)


Chciałbym aby na zdalnym serwerze był wyświetlany wynik dla: serverStatus_players, serverStatus_playersMax, serverStatus_uptime i serverStatus_monsters oraz dla serverStatus_online ale w _online chciałbym że gdy == 1 to żeby wypisywało online a jak _online == 0 to żeby wypisywało offline.

Pozdrawiam.
konrados
get_file_contents oraz parse_ini_string
lanceq
  1. <?php
  2. $wynik = file_get_contents('http://ot.lanceq.pl/config/serverstatus');
  3. echo $wynik;
  4. ?>


Zrobiłem tak i wyświetla to tak

serverStatus_checkInterval = "303" serverStatus_lastCheck = "1341750803" serverStatus_online = "1" serverStatus_players = "0" serverStatus_playersMax = "1000" serverStatus_uptime = "1h 37m" serverStatus_monsters = "724"

Za bardzo nie wiem jak wykorzystać parse_ini_string w tym.
Chciałbym żeby to wyświetlało się tak:

Online/Offline: serverStatus_online
Uptime: serverStatus_uptime
Ilość graczy: serverStatus_players / serverStatus_playersMax
Ilość potworów: serverStatus_monsters
konrados
Że co, nie ma tam newlines (enterów)? W takim razie spróbuj z explode:
  1. $array = explode(" = ", $wynik);
  2. var_dump($array);//to tylko po to byś zobaczył jak to wygląda
lanceq
  1. <?php
  2. $wynik = file_get_contents('http://ot.lanceq.pl/config/serverstatus');
  3. $array = explode(" = ", $wynik);
  4. var_dump($array);//to tylko po to byś zobaczył jak to wygląda
  5. ?>


I wyświetla się to tak

array(8) { [0]=> string(26) "serverStatus_checkInterval" [1]=> string(29) ""303" serverStatus_lastCheck" [2]=> string(33) ""1341753794" serverStatus_online" [3]=> string(25) ""1" serverStatus_players" [4]=> string(28) ""0" serverStatus_playersMax" [5]=> string(27) ""1000" serverStatus_uptime" [6]=> string(31) ""2h 27m" serverStatus_monsters" [7]=> string(7) ""724" " }


Trochę nie tak jak chciałem.
konrados
No to są podstawy podstaw... teraz możesz np. napisać tak:

  1. echo 'serverStatus_online:<b>'.$array[3].'</b>';


Jest 3 bo na 3-ciej pozycji masz wartość dla 'serverStatus_online' co widzisz dzięki var_dump

update:a nie, czekaj, coś jest nie tak z tym arrayiem, chwila...
lanceq
Dodałem to:

  1. echo '<br>Ilosc graczy:<b>'.$array[4].'</b> / '.$array[5].'';

I wyświetla:

Ilosc graczy:"0" serverStatus_playersMax / "1000" serverStatus_uptime

Chciałbym żeby wyświetlało

Ilosc graczy: 0/1000


Bez tych dodatków.
konrados
Zrób tak:
  1. //$wynik =str_replace('" ',"\"\r\n",$wynik);//to tylko jeśli naprawdę nie ma enterów w tym pliku. Ale widzę, że są.
  2. $array=parse_ini_string ($wynik);
  3. var_dump($array);
  4. echo 'serverStatus_online:<b>'.$array['serverStatus_online'].'</b>';
lanceq
Dzięki wielkie już to ogarnąłem.
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.