如果我调用PHP文件超过2次(第3次),则收到旧响应。
我的PHP文件如下:
<?php
error_reporting(0);
clearstatcache();
$ip = $_GET['ip'];
$port = 80;
$waitTimeoutInSeconds = 1;
if($fp = fsockopen($ip,$port,$waitTimeoutInSeconds)){
echo "<span style='color:green;'>OK: " . $ip. "</span>";
} else {
echo "<span style='color:red; '>ERROR: " . $ip. "</span>";
}
?>
我将GET变量的IP地址分配给脚本,然后它将对主机执行ping操作。
第二个呼叫中的响应会在2秒内响应正确的响应,直到第三个呼叫我都会得到旧的响应。
我尝试使用clearstatcache();
进行修复,但没有任何变化。
这是一张带有求职词的屏幕截图:
答案 0 :(得分:0)
我认为这不是一个老答案,而仅仅是来自fsockopen的错误。同样,返回错误需要多少次调用可能是任意的。 也许防火墙阻止了与目标的太多连接尝试,或者主机只是无法处理负载。
尝试将超时时间增加到2,然后稍等一下再点击刷新。
如果启用error_reporting(E_ALL),则可能会看到更好的错误消息。
答案 1 :(得分:0)
解决方案:
我在以下位置的IIS中添加了一个缓存规则:
- IIS Manager
- Webserver
- Output caching
- new rule: .php - > No caching