site - php read all text from file




用PHP腳本檢查FTP狀態碼 (2)

我有一個使用PEAR HTTP類檢查來自HTTP服務器的響應的腳本。 不過,我最近發現腳本在FTP服務器上失敗了(可能是任何不是HTTP或HTTPS的)。 我嘗試了谷歌,但沒有看到從HTTP服務器以外的服務器返回服務器狀態代碼的任何腳本或代碼。

如何找到使用PHP的新聞組或FTP服務器的狀態?

編輯:我應該澄清,我只感興趣的能力,從FTP服務器和我指定的目錄讀取。 我需要知道服務器是否已經死機,我沒有權限閱讀等。

請注意,雖然大部分時間我都是語言不可知的,但是整個網站都是PHP驅動的,所以PHP的解決方案對未來的易維護性和可擴展性來說是最好的。


不幸的是,HTTP的工作方式與FTP略有不同。 儘管兩者在瀏覽器中看起來都是一樣的,但是HTTP是以URI為基礎的(即訪問資源A,你有一個標識符告訴你如何訪問它)。

FTP是很老派的服務器驅動。 即使是匿名的FTP也是一個駭客,因為你仍然提供一個用戶名和密碼,它只是被定義為“匿名”和你的電子郵件地址。

檢查FTP服務器是否啟動意味著檢查

  1. 你可以連接到FTP服務器

    if (!($ftpfd = ftp_connect($hostname))) { ... }

  2. 你可以登錄到服務器:

    if (!ftp_login($ftpfd, $username, $password)) { ... }

  3. 然後,如果您需要訪問更多的底層資源來測試某個特定站點是否已啟動,請使用適當的操作。 例如在一個文件上,也許使用ftp_mdtm()來獲取上一次修改的時間或者在一個目錄上,看看ftp_nlist()工作。


使用內置的PHP FTP *功能不是比試圖推出自己的更簡單嗎? 如果URI來自您的控制之外的來源,您將需要檢查協議定義(http://或ftp://等)以確定要使用哪個功能,但這是相當平凡的。 如果現在指定了protocal(實際上應該是!),那麼你可以嘗試默認為http。





server-response