2014-12-22 71 views
0

我目前正在嘗試通過劃分不同的服務爲我的網站添加第二臺服務器。一臺服務器負責我網站的主要部分,而另一臺負責我的聊天服務。使用PHP在不同服務器上執行PHP文件

但是,有時主服務器必須連接到另一臺服務器,最好只使用PHP文件。例如,當用戶在主服務器上更改設置時,會發生這種情況,例如,應在同一時刻通知第二臺服務器(即更新數據庫)。

因此,例如,當用戶更改www.example.com/foo.php 1),請求應發送到www.sub.example.com/bar.php?setting=1&value=abc(服務器2),而不向用戶顯示第二個請求。它應該在後臺進行,最好甚至與用戶的請求不同步。

有沒有人知道最好/最簡單的方法來實現這一目標?

回答

1

E.g.張貼請求與捲曲。從郵政數據中獲取參數並用它們來創建請求(您可以使用自己的參數,而不是來自發布數據)

//set POST variables 

$url = $_POST['url']; 

unset($_POST['url']); 

$fields_string = ""; 

//url-ify the data for the POST 

foreach($_POST as $key=>$value) { 

    $fields_string .= $key.'='.$value.'&'; 
} 

$fields_string = rtrim($fields_string,'&'); 

//open connection 

$ch = curl_init(); 

//set the url, number of POST vars, POST data 

curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_POST,count($_POST)); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string); 


//execute post 

$result = curl_exec($ch); 

//close connection 
curl_close($ch); 
+0

感謝您的示例:)儘管我不太明白爲什麼要添加' '在foreach循環中顯示,但是你用'rtrim'再次刪除它們。你能舉一個例子說明$ fields_string應該是什麼樣子?我可以根據必要的鍵/值對輕鬆生成它們,我只是想知道它們的外觀如何:) –

+0

他只刪除最後一個'&',但保留每個鍵/值對的分隔符。 – herezy

相關問題