2013-10-24 79 views
-1

上我基本上找一個if語句:檢查與PHP如果文件是遠程服務器

如果(....){}

其他{}

...將檢查當前文件是否在遠程服務器上(在線,在我的網站上,而不是在使用Xampp或Mamp的本地配置中)。

我已經完成了一些研究,它將我帶到了file_exists,但我不確定這是我想要的還是有更好的方法來做到這一點。

我不知道這是否是相關爲什麼我這樣做,但在這裏有雲:我有一個頁面的functions.php幾個不同的配置,我想它採取不同的行動時,它的生產,以及當它處於本地測試模式時。

+2

'$ _ SERVER [「SERVER_ADDR」]' – Tchoupi

+0

你必須拿出一些其他的標準比*當前文件是在遠程服務器上應該做的伎倆*。當前文件始終在本地服務器上,這就是* current *的原因。 – Oswald

回答

1

如果文件位於不同的主機上,您可以使用gethostbyaddr進行檢查,並將其與本地主機或服務器進行匹配,然後相應地執行操作語句。

3

有幾個條件已經被排除在您的問題之外,比如文件是否可以通過HTTP請求進行調用,以及您是否關心遠程服務器上的文件是否爲相同。如果您只關心文件的存在並通過HTTP公開,則可以爲該文件發出HTTP請求,並檢查響應代碼。您可能需要在文件中添加一些處理邏輯來處理這些請求。如果該文件不能通過HTTP請求訪問,則有幾個選項:

1)創建一個腳本來檢查文件。這需要一些額外的工作來確保安全。 2)FTP到服務器並嘗試下載文件。

使用這兩種解決方案之一,如果您希望知道兩個地方的文件是否相同,您可以在兩端使用MD5哈希查找。

1

如果文件是遠程文件,您可以使用filectime返回FALSE。

$remote = empty(@filectime($url)); 
if ($remote) { 
    // File is remote. 
} 
else { 
    // File is local. 
} 
相關問題