【发布时间】:2009-10-21 15:21:05
【问题描述】:
我正在通过套接字连接到远程网站。我期待来自远程站点的特定字符串“XXX”。收到字符串后,我想将 'ACK' 200 OK 响应发送回远程服务器。
这是我目前所拥有的(假设套接字成功打开); $fp 是指向套接字的资源(指针):
while (!feof($fp)) {
$data = fgets ($fp, 1024);
if (strcmp("PASS",$data)==0) {
// Send 200 OK 'ack' response to remote server
$response = "HTTP/1.0 200 OK\r\n";
fputs ($fp, $response);
// Do additional processing here ...
}
}
fclose($fp)
我不确定的是,在 (!feof()) 循环中使用 fput 是否“合法”。如果上面的代码有任何问题,如果有人能指出它,我将不胜感激(即如果它可以写得更好)。
【问题讨论】:
-
这更短,(未经测试): if (strpos(file_get_contents('php://input'), 'PASS') !== false) { header("HTTP/1.0 200 OK\ r\n"); }
-
只是出于好奇:为什么您的脚本(似乎是客户端)“发送 HTTP/1.0 200 OK\r\n”到似乎是 http 服务器的东西?
标签: php http-headers sockets