2016-01-05 60 views
0

我正在爲許多客戶端安裝CMS,但隨着我不斷改進它,我對幾個文件進行了修改。我希望這些更新能夠自動應用於使用相同文件的所有項目。從遠程php文件更新本地php文件

我想在每次打開CMS時都執行一個檢查文件。這個文件會比較本地文件的版本和遠程文件,爲此我可以保留一個日誌或版本,沒什麼大不了的,但這不是問題,這裏是我想到的一些示例代碼:

$url = 'http://www.example.com/myfile.php'; 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HEADER, false); 
$data = curl_exec($curl); 
curl_close($curl); 

問題是得到myfile.php的內容,因爲它的PHP文件服務器將執行它並返回輸出,但我想要的文件的實際內容。我明白,這是不可能的,因爲這將是一個安全問題,任何人都可以得到其他網站的PHP代碼,但是有沒有什麼辦法可以通過給遠程的遠程php文件的內容給予特殊的權限連接?

謝謝。

+2

獲取文件的內容,您應該創建一個使用的ReadFile()讀取和輸出文件內容的服務器上的下載腳本。用本地服務器的文件名稱來調用這些腳本,如http://remote.tld/download?file = anyFileYouNeed.php – maxhb

+0

好主意!!!添加它作爲答案。 – multimediaxp

回答

2

您應該在遠程服務器上創建一個下載腳本,該腳本將使用readfile()返回原始的php代碼。

<?php 
$file = $_SERVER['DOCUMENT_ROOT'] . $_GET['file']; 

// @TODO: Add security check if file is of type php and below document root. Use realpath() to check this. 
header("Content-Type: text/plain"); 
header("Content-Disposition: attachment; filename=\"$file\""); 
readfile($file); 
?> 

通過fethcing http://example.com/download.php?file=fileName