2012-06-20 32 views
0

我有一個頁面通過include()函數使用另一個頁面。請求並使用此外部頁面的頁面嵌入了一些html以及使用echo函數的一些輸出。這是我所指的一個例子。Php包含函數會導致空白並忽略樣式

頁Apple.php包含:

<html> 
<head></head> 
<body> 

<h1>I have some content here.</h1> 

<div id="format" style=" width:20px; height:20px;"><?php include("Orange.php") ?></div> 

<h2>Some more content here.</h2> 
</body> 
<html> 

頁Orange.php包含:

<?php 
    $astringA='blue'; 
    $astringB='berry'; 
    include("someExternalPage.php"); 
    echo "fruit is ".$astringA.$astringB.$externalVariable; 
    ?> 

每當Apple.php在瀏覽器中查看,只有它的身體的上半部分示出(包含函數上方的部分)以及div框下的所有內容都將丟失並填充空白。此外,包含的文件將忽略div盒所具有的所有樣式。 Orange.php也是如此; include()函數下面的所有輸出都會丟失。我該如何解決這個問題,以便包含的文件符合我想要的樣式,並繼續輸出網頁上的其餘內容?

我也注意到,即使我嘗試通過php輸出其餘的頁面,如 echo「> h2>這裏有更多的內容。 (我故意顛倒了上面第一行「>」,以便我在這裏說明代碼) 包含仍然優先於當前頁面,因此輸出從不顯示。

+0

SomeExternalPage.php是否存在? – andrewsi

回答

3

像你這樣的氣味有一個隱藏的致命錯誤在這裏。

嘗試使用的error_reporting(E_ALL)和運行頁面,看看是否有錯誤...

+2

如果在嘗試此操作後沒有出現它們,您可以檢查Apache的日誌或在此行後面添加'ini_set('display_errors','1')',以查看頁面上的錯誤(如果有)。 – anjunatl

+0

是的,我在這裏假設顯示錯誤在... :) –

+0

我試過error_reporting(E_ALL)以及ini_set('display_errors','1');但我仍然無法找到錯誤。我在默認情況下啓用了錯誤報告功能,因此我能夠在其他項目中查看過去的其他錯誤。 – megatr0n

0

你好像缺少一個分號包括Apple.php後。當您嘗試加載Orange.php時,我們可以看到輸出嗎?確切知道流量在哪裏破碎是有幫助的。

+2

你不需要最後一個;在php結束標記之前,這是一個很好的練習,但它不是必需的... –

+0

每天學習新東西! – CodeMoose

+0

這是一個錯字,但我在原始版本上有分號。爲了說明的目的,我正在嘗試獲得臨時設置。 – megatr0n

0

someExternalPage.php或$ externalVariable有問題。

+0

我無法訪問someExternalPage.php的代碼。我會盡力聯繫對方。 – megatr0n

0

如果someExternalPage.php實際上是一個外部文件(即要包括文件如http://example.com/test.php),你可能需要檢查你已經在你的php.ini

或者啓用allow_url_include,請確保someExternalPage。 PHP存在。

+0

通常我會得到一個錯誤或警告,如果該文件不存在,但是現在我沒有看到。 – megatr0n