2012-04-04 362 views
1

我有一個包含子目錄(site1.com)中的index.html文件的PHP腳本(index.php)。此index.html文件顯示位於同一目錄(site1.com)中的圖像。包含訪問相同目錄中的文件的子目錄中的文件

現在,index.php文件包含index.html文件。顯示index.html中的html,但圖像不是。 index.html文件正在ROOT目錄中查找要顯示的圖像。這就是問題。我想以某種方式包含site1.com目錄的所有內容(??),而不僅僅是一個'index.html'文件。

我試過改變工作目錄,但沒有成功。也許我只是沒有正確地使用它...

由於我不想進行解釋的原因,我不想編輯PHP或Apache中的任何配置設置。我也不想修改index.html的代碼。基本上說,我需要找到一個可以100%在PHP中實現的解決方案。當實際上顯示來自子目錄(site1.com)的內容時,該url需要顯示爲用戶仍在根目錄(mysite.com)中。這在某種程度上就像透明代理。

[FILE] index.php 
[DIR] site1.com 
    [FILE] index.html 
    [FILE] img1.png 
    [FILE] img2.png 
[DIR] site2.com 
    [FILE] index.html 
    [FILE] img1.png 
    [FILE] img2.png 

我已經做了大量的搜索,但還沒有找到工作解決方案。

回答

1

當您包含()/ require()文件時,就好像該文件的內容被切割/粘貼到執行包含的腳本中一樣。如果index.html使用site1.com目錄中的圖像,則必須使用基於index.php位置的路徑引用這些圖像。

遠程用戶不能告訴你已經包含在您的網站的子目錄文件 - 他們看到的一些HTML從服務器回來,因此,如果您的index.html有類似

<img src="img1.png" /> 

在裏面,但HTML正在從index.php文件腳本中顯示,然後在瀏覽器將要尋找

http://example.com/img1.png 

http://example.com/site1.com/img1.png 

您需要輸出正確的路徑。

+0

但不會將工作目錄移動到文件夾,然後包括index.php文件做我想要的? – 2012-04-04 03:58:03

+0

編號工作目錄純粹是服務器端的概念,並且完全不會影響客戶端瀏覽器如何解釋html。如果您的代碼輸出'',那麼無論您在服務器上執行了任何目錄操作,瀏覽器都會嘗試加載該代碼。 – 2012-04-04 04:01:58

+0

我可以使用cURL(來自位於根目錄的'index.php'文件)連接到我的服務器並從'site1.com'子目錄加載index.html文件嗎?然後,將加載的內容發送回客戶端,就好像內容來自根目錄一樣。 – 2012-04-04 04:08:47

相關問題