2011-06-22 49 views
3

这是一个2部分的问题...最好的方式来处理跨服务器php包括

1)file_get_contents是否创建服务器负载?我在博客边栏中使用了3次以上的广告,通过我的博客网络发布广告,但现在网络正在放缓。我想确保这不是原因。

2)什么是处理跨服务器的最佳方式?就像我上面所说的,我正在使用file_get_contents,并且可能以非常糟糕的方式进行。看着我的一些代码,我会看到:

<? 
$c = file_get_contents("http://www.url.com/includes/include1.php"); 
echo ($c); 
?> 
<? 
$c = file_get_contents("http://www.url.com/includes/include2.php"); 
echo ($c); 
?> 

我的理解对不对,现在是草率的,因为它的打开和关闭PHP的时候,你并不需要,再加上它是把两个不同的URL的同一变量下。这让我想知道它在这一点上甚至如何运作。

无论如何,我正在寻找最适合我的跨服务器包含问题的解决方案,希望能够降低服务器在较重负载下的阻力。

谢谢你!

+2

非现场包括应避免。它们不仅速度慢,因为服务器必须通过网络传播,还会向应用程序打开巨大的攻击媒介。你究竟使用了什么?可能有更好的方法。 – deceze

+0

如果您只是嵌入内容,请考虑使用iframe或jQuery .load()插入文本。 – mario

+0

OP在这里 - 为了减少,我只是包括通过我的网络重复的东西。 IE浏览器,如果我有一个顶部菜单链接我的网络,或RSS框,或广告广场。这样,如果我必须做一个小的改变,我只需更改一个文件而不是50+。如果有更好的方法,我会跳过所有 –

回答

3

您不应该允许跨服务器包含。什么会阻止你以外的人阅读你的PHP文件的内容?

至于你的原始问题:如果你关心响应,然后通过Ajax加载你的广告(我推荐jQuery)。这样一来,随着广告的到来,真实内容将会很快加载。

另一个考虑的选择是以某种方式缓存您的广告。

+0

右..现在我的php文件是非常无害的,理论上它们应该是文本文件,但你是对的。您是否知道一次更新多个页面的好方法,例如广告等?谢谢! –

+0

您的广告与网页位于同一台服务器上吗?还是外部域名,就像您使用Google AdWords一样? –

1

更好的方法是让一个单独的脚本获取该信息,然后将其缓存在服务器上的文件中。然后提供该缓存的文件。 cron作业可以不时刷新缓存,并且您的网站的性能完全独立于广告服务器的可用性。就目前而言,如果广告服务器关闭,您的脚本将挂起,直到请求超时,并且您的用户被留在永远的空白屏幕。

+0

好吧,它是同一台服务器的所有部分,但你说得对,当我扩展时,我打算有多台服务器,并最终导致这个问题。你能指出我该怎么做? –

相关问题