我有定位PHP腳本,讓我得到一個txt文件的內容遠程服務器上,然後輸出到一個變量roblems。將某些東西輸出到變量並不是最難的部分。這是拾取和閱讀文件內容的難點。有人有主意嗎?PHP腳本來檢查遠程服務器上,一個文件存在
我已經瀏覽了論壇,只能找到一個本地工作的方法。由於目標遙遠,因此不理想。
的目的真的是,我如何找出一個文件的遠程服務器,並輸出HTML狀態上存在。
想法?
我有定位PHP腳本,讓我得到一個txt文件的內容遠程服務器上,然後輸出到一個變量roblems。將某些東西輸出到變量並不是最難的部分。這是拾取和閱讀文件內容的難點。有人有主意嗎?PHP腳本來檢查遠程服務器上,一個文件存在
我已經瀏覽了論壇,只能找到一個本地工作的方法。由於目標遙遠,因此不理想。
的目的真的是,我如何找出一個文件的遠程服務器,並輸出HTML狀態上存在。
想法?
使用此:
$url = 'http://php.net';
$file_headers = @get_headers($url);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
echo "URL does not exist";
}
else {
echo "URL exists";
}
來源:http://www.php.net/manual/en/function.file-exists.php#75064
您可以嘗試使用此代碼:
if (file_exists($path)) {
echo "it exists";
} else {
echo "it does not exist";
}
正如你可以看到$path
是你的文件的路徑。當然,你可以寫任何東西,而不是那些echo
。
訪問其他服務器上的文件可能非常棘手!如果您可以通過ftp訪問文件,則可以使用ftp來獲取文件,例如使用ftp_fget()。
如果你沒有通過ssh訪問文件系統,你只可以檢查請求的文件時,服務器對響應。如果服務器響應錯誤404,則該文件不存在,或者由於服務器配置而無法通過http訪問該文件。
您可以通過捲曲進行檢查,看this tutorial通過捲曲得到響應代碼的的相關詳細解釋。
假設你的遠程服務器可以訪問由http
或ftp
你可以使用file_exists()
:
if (file_exists("http://www.example.com/somefile.txt")) {
echo "Found it!;
}
或
if (file_exists("ftp:user:[email protected]/somefile.txt")) {
echo "Found it!;
}
我喜歡第一個! – Echelon
我知道這是一個古老的線程,但拉爾斯·艾伯特指出,檢查因爲在遠程服務器上存在一個文件可能會很棘手,所以使用cURL檢查服務器響應是我如何在我們的大旅行網站上完成的。使用file_exists()每次都會拋出一個錯誤,但檢查「200 OK」已被證明非常成功。下面是我們使用來檢查我們的酒店列表頁面圖像的代碼:
$media_url = curl_init("http://pathto/remote_file.png");
curl_setopt($media_url, CURLOPT_RETURNTRANSFER, true);
$media_img = curl_exec($media_url);
$server_response = curl_getinfo($media_url, CURLINFO_HTTP_CODE);
if($server_response != 200){
echo "pathto/graphics/backup_image.png";
}else{
echo "http://pathto/remote_file.png";
}
其中「http://pathto/remote_file.png」是我們所追求的遠程圖像,但我們需要知道它是否真的存在。如果遠程映像不存在,則顯示「pathto/graphics/backup_image.png」。
我知道這是非常冗長,相比file_exists(),但它也更準確,至少到目前爲止是這樣。
這將工作在遠程文件? –
是的,我在我的網站上也使用了這段代碼:) –