2012-01-19 75 views
0

如果我使用此代碼相同的文件兩個不同的結果

<?php 
    include $_SERVER['DOCUMENT_ROOT'] . '/includes/header.php'; 
?> 

我得到的文件IM調用的功能,但沒有得到佈局/格式或文件的圖像。

如果我使用此代碼

<?php 
    $includeFile = file_get_contents("http://www.YourDomain.com/includes/header.php"); 
    echo $includeFile; 
?> 

我得到的格式化佈局,但在搜索領域不起作用。有沒有辦法結合這兩個代碼來獲得佈局和功能?

+0

包含圖像時,不應該刪除底部的那一行。 – animuson

+0

也許你應該檢查你的問題,並解釋「此代碼」是指什麼:) – Matten

+2

這是你做的兩件非常不同的事情。在服務器上執行'file_get_contents'的最後一個,並且只返回HTML。 –

回答

4
include $_SERVER['DOCUMENT_ROOT'] . '/includes/header.php'; 

這基本上將該文件複製並粘貼到您的文件,並執行PHP。

$includeFile = file_get_contents("http://www.YourDomain.com/includes/header.php"); 
echo $includeFile; 

這運行文件就像它在瀏覽器中運行,只是回聲輸出,這只是HTML(可能)。在這種情況下,PHP已經被執行並完成了。在第一種情況下,PHP被執行,然後PHP繼續。

+1

感謝您解釋這兩個操作!閱讀完所做的評論後,我能夠解決問題。我也研究了所提到的安全問題。 :) – FLX

+0

@FLX:很高興我可以幫忙:-) –

3

當你「包含」這個文件時,你實質上是在腳本中調用它的代碼。如果您使用file_get_contents()請求文件,那麼它正在處理腳本並返回輸出。我知道你要做什麼,但唯一的方法是包含主要的index.php文件,然後處理腳本的其餘部分,而不是嘗試通過從第二個腳本中請求它來重新處理它。

+0

是的,這基本上是一個Rocket的帖子的重寫版本 – Ralph

相關問題