所以我一直在爲此苦苦掙扎了兩天,並沒有取得很大的成功。php的聆聽者頁面
我得到的是一個http POST,它被髮送到正在我的服務器上創建的php文件的網頁。所以基本上我試圖創建一個PHP監聽器腳本,當發生http發佈時,它將運行腳本將xml數據保存到SimpleXMLElement中,以便我可以編寫MYSQL查詢將數據導入到我們的數據庫中。一旦我將數據獲取到SimpleXMLElement中,我可以從那裏接管,我遇到的問題是我無法獲取listener.php文件來偵聽HTTP POST並將數據讀取到本地文件中。
<?php
public void RunServer()
{
var prefix = "http://*:4333/";
HttpListener listener = new HttpListener();
listener.Prefixes.Add(prefix);
try
{
listener.Start();
}
catch (HttpListenerException hlex)
{
return;
}
while (listener.IsListening)
{
var context = listener.GetContext();
ProcessRequest(context);
}
listener.Close();
}
private void ProcessRequest(HttpListenerContext context)
{
// Get the data from the HTTP stream
var body = new StreamReader(context.Request.InputStream).ReadToEnd();
$data = body
byte[] b = Encoding.UTF8.GetBytes("ACK");
context.Response.StatusCode = 200;
context.Response.KeepAlive = false;
context.Response.ContentLength64 = b.Length;
var output = context.Response.OutputStream;
output.Write(b, 0, b.Length);
context.Response.Close();
}
?>
這段代碼是我已經得到最接近我需要什麼,我得到一個500錯誤,當我嘗試訪問的頁面。我不會說謊我對PHP很陌生,在理解函數定義時遇到了問題。 (也是我從一個已關閉的StackOverflow票證中得到了這段代碼)
我目前在我的服務器上使用php5和apache作爲我的虛擬主機。 ] 我有一個php.info()文件設置,可以發佈它,如果需要的話。
的代碼是不是PHP。當您嘗試通過php解析器運行它時,它將會失敗並顯示「致命錯誤」。你可能會看到500錯誤,因爲你的服務器隱藏了你的php錯誤。 – Yoshi 2013-02-11 16:51:10
我有一種輕微的感覺,即將發生這種情況,因爲變量聲明與我以前見過的變量聲明不同。 I.E.當我在php中編寫我的sql腳本時,但我不確定。有沒有辦法做到這一點在PHP中,你會推薦? – choppyfireballs 2013-02-11 17:00:13
您的代碼似乎是PHP,JavaScript和某些C變體的混搭。什麼StackOverflow問題做這個代碼來自? – Barmar 2013-02-11 17:05:16