Autor | Zpráva | ||
---|---|---|---|
lokutus7323 Profil * |
#1 · Zasláno: 4. 5. 2008, 21:31:06
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 |
#2 · Zasláno: 4. 5. 2008, 21:41:01
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 |
#3 · Zasláno: 4. 5. 2008, 21:43:09 · Upravil/a: Akacko
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 * |
#4 · Zasláno: 5. 5. 2008, 08:20:48
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 |
#5 · Zasláno: 5. 5. 2008, 08:35:08
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 * |
#6 · Zasláno: 5. 5. 2008, 13:38:10
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 |
#7 · Zasláno: 5. 5. 2008, 14:22:50
lokutus7323
if (@file_get_contents($server)) $status = 'Online'; else $status = 'Ofline'; Pokud dáš před fci zavináč, nezobrazí se chybová hláška. |
||
lokutus7323 Profil * |
#8 · Zasláno: 5. 5. 2008, 14:46:00
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 |
#9 · Zasláno: 5. 5. 2008, 14:53:58
lokutus7323
Nejspíš nějaký cyklus - for nebo foreach. |
||
Adam Zábranský Profil |
#10 · Zasláno: 5. 5. 2008, 17:31:27 · Upravil/a: Adam Zábranský
$servery = array("prvni","druhy"); foreach($servery as $server) { if(@file_get_contents($server)) { $status = "online"; }else{ $status = "offline"; } echo $status."<br>"; } |
||
imploder Profil |
#11 · Zasláno: 5. 5. 2008, 17:44:25
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.
|
||
Časová prodleva: 16 let
|
0