2011-02-08 85 views
0

考慮以下幾點:ReadFile的與包括

我有一個大的項目,該項目由父網站的,沿着多個「孩子」的網站,它們都有着相同的核心/基地「的內容。(圖片,'includes',樣式表等)

我的意圖是讓這些循環文件駐留在一臺特定的服務器上,並且總是在需要時引用相同的路徑。

這將導致任何修改的'核心'文件(圖像,'包括',樣式表等)影響所有交叉引用。

什麼是最好的方式去呢?


目前,(可能是暫時的),我用下面.. <?php readfile('http://remotepath.com/_core/includes/top_nav.php'); ?>

這是一種嘗試,在最近的解決<?php include('/filepath/'); ?>

這帶來了一個明顯的問題 - 使用下面的到目標頁面,將不再工作.. 其次,通過'readfile'不安全檢索內容?

<?php $url = basename($_SERVER['SCRIPT_FILENAME']); echo $url; ?> 

這當然返回文件的路徑,'top_nav.php'

?我怎樣才能使用類似方法的URL /網址的價值?

任何有識之士將不勝感激!乾杯。

回答

1

不要這樣做。

在另一臺服務器上放置圖像,腳本和樣式表是很好的。事實上,這實際上是一件好事 - 這意味着你可以有更多的同步文件下載,這將加快你的網站的加載。但是,在遠程文件上執行include調用會非常有害。這是因爲這會使您的服務器向遠程服務器執行HTTP請求。雖然發生這種情況(並且很容易需要一秒鐘或更多時間),但您的腳本完全沒有。它會極大地減慢你的網站。

盡一切努力共享站點之間的文件。不過,我強烈建議你不要在頁面呈現時這樣做。您可能希望定期將文件從父服務器下載到子服務器上,然後通常從您的本地文件系統中包含它們。

NB,你可以呼叫includereadfile通過HTTP並不意味着你應該事實。

+0

謝謝你的洞察力,精心挑選! (我認爲這是一個問題) - 你能爲我提供解決方法嗎?示例? –

1

不要遠程包含源文件。如果你想在許多不同的服務器上使用相同的PHP庫副本,有幾個簡單的方法可以實現它。你可以cron一個rsync,它可以週期性地將任何變化從主機複製到從機,或者把你的共享文件放到一個源代碼控制系統中,比如git,然後在每個slave上cron一個「git pull」命令。

+0

感謝您的回覆,我會研究2個建議的方法。 乾杯! –