2011-06-22 85 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

好吧,它是同一臺服務器的所有部分,但你說得對,當我擴展時,我打算有多臺服務器,並最終導致這個問題。你能指出我該怎麼做? –

相關問題