php监听器页面

时间:2013-02-11 16:47:13

标签: php listener

所以我现在已经两天不停地捣乱了,但并没有取得多大的成功。

我得到的是由网页生成的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()文件设置,如果需要可以发布它。

1 个答案:

答案 0 :(得分:1)

如果要将数据保存到将执行此操作的SimpleXMLElement中:

<?php
$xml = new SimpleXMLElement($_POST['xml-value-field']);
//insert into mysql db...
//write to local file...
?>