2011-11-12 39 views
0

我正在使用file_get_contents通过代理来获取网页。这个设置现在很好,但从昨天开始,它开始产生奇怪的结果。通过代理问题的file_get_contents

file_get_contents函数的输出是一个过时的页面。如果我更改了代理服务器,我可以在php中获取phpinfo页面或所有已初始化变量的打印阵列,这两个服务器都连接到 - 取决于代理的结果。

在我的服务器中是否存在缓存问题或代理中存在缓存问题。他们的服务器可能是负责任的吗?

此外,直接访问页面或通过Web代理访问页面不会遇到上述问题。

回答

1

代理最有可能缓存页面。 file_get_contents()是一个简单的获取源并存储在内存函数中,它不被缓存。我知道鱿鱼代理有很多设置缓存,但你必须详细说明你的代理设置的任何进一步的帮助

+0

奇怪的是,如果我使用另一台代理服务器,我得到相同的过时的页面它相同的状态 - 这是我认为问题出在我身边的地方。 –

+0

奇怪。它肯定不是file_get_contents()。它从这个位置简单地读取并存储在记忆功能中。因此,无论您的服务器上是否有某种mitm缓存系统,都会拦截所有网络流量(可疑),代理缓存它(您是否尝试过一个完全模糊的代理?它很少见,但我看到一些人愚蠢地配置代理服务器,使用像静态缓存不注意谁在寻找页面等,这样你就可以得到其他人使用该代理请求的旧页面。再一次,它是可疑的) – Lee

+0

或其发送页面的服务器可能有一些缓存控制,您的浏览器可能会忽略,但代理或服务器正在遵守。说实话,它是一个不断调试和追踪的例子。我无法给你一个黑色和白色的答案,没有从字面上做相同的过程,并从我自己的调查得出答案 – Lee