Autor Zpráva
lokutus7323
Profil *
Ahoj,
mám probpém, chci si ivěřit, zda je server offline či online. Na serveru je určitý obrázek, který pokud se bude server online, se v pořádku načte. Ale pokud je server offline, obrázek se načíst nemůže..to je jasné. Mohli byste mi prosím pomoci se scriptems následujícífunkcí:

Pokud se obrázek http://neco.cz/1.gif načte v pořádku, nedělej nic. Pokud se nenačte, zobraz obrázek 2.gif.

Děkuju
bukaj
Profil
lokutus7323
Můžeš použít metodu, kdy nebudeš v src obrázku odkazovat na externí obrázek, ale na svůj skript (kupř. <img src="tvuj_skript.php">), který se pokusí načíst externí obrázek a pokud načtení selže, použije nějaký lokální. Navíc můžeš externí obrázky cachovat, takže i při výpadku externího serveru, budou stále dostupné.
Akacko
Profil
lokutus7323
Zkus možná takto:
if (file_get_contents($server))
      $status = 'Online';
    else
      $status = 'Ofline';

Funguje na principu, že pokud se podaří načíst stránku tak je server online. Jinak offline. Jediný problém může nastát, pokud bude erver offline, tak skript bude trochu déle načítat.
Lokutus7323
Profil *
Ahoj,
děkuji

zkoušel jsem z tohoto fora už 2 podobné scripty. Všechyn stejně jako ten tvůj fungovaly, pouze, když je stránka on-line. Pokud zadám dotaz na neexistující adresu napřhttp://blablabla.cz vyhodí mi to toto:


Warning: file_get_contents(): php_network_getaddresses: gethostbyname failed in c:\documents and settings\student\dokumenty\easyphp1-8\www\test\index.php on line 3

Warning: file_get_contents(http://dsglsd.cz): failed to open stream: No error in c:\documents and settings\student\dokumenty\easyphp1-8\www\test\index.php on line 3
Offline


dole vidíte, že slovo off-line tam opravdu je, ale potřeboval bych to, bay se to zobrazovalo bez těch chyb...

dík
Joker
Profil
Lokutus7323
Pokud zadám dotaz na neexistující adresu napřhttp://blablabla.cz vyhodí mi to toto
To je správné chování. Jde o varování, že nelze přeložit zadané doménové jméno na IP adresu.
V daném skriptu to asi není chyba, znamená to offline, stejně jako když se soubor nepodaří načíst.
Takže bych tu hlášku asi jen odstínil zavináčem.
lokutus7323
Profil *
Takže bych tu hlášku asi jen odstínil zavináčem
Ahoj,
mohl bys mi prosím vyvětlit co jsi měl na mysli...moc ještě PHP neumím..děkuju
yFang
Profil
lokutus7323
if (@file_get_contents($server))
      $status = 'Online';
    else
      $status = 'Ofline';

Pokud dáš před fci zavináč, nezobrazí se chybová hláška.
lokutus7323
Profil *
Ahoj,
dal jsem dohromady tento script, funguje..takže moc dík všem, kterí mi to napsali..

<?
$server="http://neco.cz";
if (@file_get_contents($server))
      $status = '<img src="1.gif">On-line';
    else
      $status = '<img src="2.gif">Off-line';

echo ($status);
?>

Chtěl bych se ješětě zeptat, jak docílit toho abych měl v scriptu třeba 10 stránek a pak se mi ve výsledku vypsala stav každé stránky na nový řádek. Vím, že je možné scritp kopírovat x-kreát, ale myslím, že takhle se to bude i líp obsluhovat...děkuju
yFang
Profil
lokutus7323
Nejspíš nějaký cyklus - for nebo foreach.
Adam Zábranský
Profil
$servery = array("prvni","druhy");
foreach($servery as $server)
{
  if(@file_get_contents($server)) {
    $status = "online";
  }else{
    $status = "offline";
  }
  echo $status."<br>";
}
imploder
Profil
Nebude to file_get_contents() fungovat pomalu, když to načítá celou stránku? Připadá mi to jako plýtvání, lepší by bylo něco jako ping.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0