Php fsockopen不';如果使用if/else,则无法正常工作
我有这个PHP代码Php fsockopen不';如果使用if/else,则无法正常工作,php,fsockopen,if-statement,Php,Fsockopen,If Statement,我有这个PHP代码 $fp = @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 1); if ($fp) { $url = "/"; fputs($fp, "GET $url HTTP/1.1\r\nHost: {$_SERVER['REMOTE_ADDR']}\r\nConnection: close\r\n\r\n"); $resp = ''; while(!feof($fp))
$fp = @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 1);
if ($fp) {
$url = "/";
fputs($fp, "GET $url HTTP/1.1\r\nHost: {$_SERVER['REMOTE_ADDR']}\r\nConnection: close\r\n\r\n");
$resp = '';
while(!feof($fp)) {
$resp .= fgets($fp, 1024);
}
if (preg_match('/^http\/1\.\d+ 401/i', $resp)) {
echo "Requires authentication";
} else {
echo "No auth required.";
}
} else {
echo "Failed to connect on port 80, reason: $errstr";
}
我编辑了这几行
} else {
echo "Failed to connect on port 80, reason: $errstr";
}
我只写了两行代码来检查$errstr#连接是否被拒绝
像这样
} else {
if ($errstr != 'Connection refused') {
echo "Ok;
}
}
但是代码不能正常工作
你能检查一下有什么问题吗
感谢您尝试使用套接字操作执行HTTP请求,而不仅仅是执行
文件获取内容($url)
?请在测试时删除@
错误抑制,并查看是否有任何错误。此外,请确保在ini
中将allow\u url\u fopen
设置为true。看起来您缺少Ok上的结束引号。将echo“Ok;
更改为echo“Ok”
谢谢Marc B和prodigitalson。我的问题已经解决。