2011-06-03 81 views

回答

1

無需複雜的套接字和其他遠程處理。您可以驗證,如果返回的圖像確實是使用PHP GD庫的圖像:

if(!$size = getimagesize($filename)) { 
    $image = 'images/default.jpg'; 
} 
+0

簡單但有用! Thx〜 – Ovilia 2011-06-03 02:56:51

+0

總是樂於提供幫助。提問並添加到收藏夾;) – 2011-06-03 02:58:13

0

如果你的目標只是檢查一個網站是否關閉,你可以在php中簡單地做到這一點,如解釋here和​​。基本上,你會嘗試打開該網站,如果有負載,你承擔起它的運行,如果它不加載你假設網站已關閉。

0

試試這個:

<?php 
    function GetServerStatus($site, $port) 
    { 
     $fp = @fsockopen($site, $port, $errno, $errstr, 2); 
     if (!$fp) 
     return false; 
     else 
     return true; 
    } 
?> 

傳站點(或IP)和端口,它會返回false,如果網站關閉和真實,如果該網站是向上。這至少會告訴你網站是否停機。

+0

但可能需要一些時間才能失敗,具體取決於網絡如何關閉。如果您沒有DNS解析,可能會很快,但如果您獲得IP地址,超時可能需要一段時間才能發生。 – 2011-06-03 02:49:45

0

要知道,一個網站已關閉,你基本上需要嘗試,並從中得到一些數據(網頁,圖片,等等)並使用超時。如果在該時間段內沒有數據返回,則假設它已關閉。

這裏有一個簡單的方法:

<?php 

ini_set('default_socket_timeout', 5); 

function getNetworkStatus(url) { 
    return (file_get_contents(urlencode($url)) !== false) 
} 

?> 

問題是你不能只是一味地查詢遠程服務器,這將增加一個很大的延遲到您的網頁/應用 - 你需要緩存此信息一段時間(數據庫,文件,不管)。