2012-07-03 295 views
0

嗨我試圖讓一塊HTML只顯示在主頁上,這是http://www.domain.com/ ...我寫了下面的代碼,但它不起作用的HTML顯示無論頁面,我錯過了什麼

<?php 
$hweb .= 'http://' .$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 
if ($hweb == 'http://www.domain.com/'): 
?>   
        <div style="margin:0 auto;"> 
         <div style="float:left"> 



<?php endif; ?> 
+1

您是否嘗試過'$ hweb'上的回顯以查看它的作用?和'。='?在這種情況下'$ hweb = ...;'更有意義 –

+0

是的,我回應了它,它返回了http://www.domain.com/,當它在另一個頁面http://www.domain.com/ page.html所以$ hweb變量正在工作 – acctman

+2

(如果)它返回domain.com,我發現你的問題。缺少斜線。因此,您將「http:// domain.com」與「http:// domain.com /'相匹配。哦,等等,那不是你的問題。對不起 –

回答

-3

這是因爲HTML是內聯在PHP文件中,但在PHP標籤之外。您可以簡單地在if中回顯HTML。

if ($hweb == 'http://www.domain.com/') 
{ 
    echo '<div style="margin:0 auto;">'; 
    echo '<div style="float:left">'; 
} 

,或者如果你有很多的HTML,你可以做這樣的

<?php 
    ob_start(); 
?> 

<html> 
<body> 
<p>This HTML only be echoed </p> 
</body> 
</html> 

<?php 
    $hweb .= 'http://' .$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 
    if ($hweb == 'http://www.domain.com/'): 
    { 
     ob_end_flush(); 
    } 
    else 
    { 
     ob_end_clean(); // Probably not needed 
    } 

?>   
+0

只需詳細說明,一般情況下只有<?php標籤由php運行,外面的所有內容都簡單地回顯給瀏覽器。你的另一種選擇是關閉輸出緩衝ob_start [鏈接](http://uk3.php.net/manual/en/function.ob-start.php) – Duncan

+0

有沒有一種方法來回顯html代碼的50線沒有爲每行輸入echo引號? – acctman

+0

是的,請參閱ob_start的示例。您關閉輸出緩衝,然後在PHP標記之外寫入您的HTML。然後在我上面的註釋中調用ob_flush(在php標籤內)鏈接到ob_start – Duncan

1

首先是 - 請更換

$hweb .= 'http://' .$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 

$hweb = 'http://' .$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 

$ hweb可能在之前的某個地方被初始化。

二:

只要你要求「http://www.domain.com/somename.php」你如果條件永遠不會得到執行。 REQUEST_URI將始終保存'/somename.php',除非您使用一些URL重寫。

第三: 確保所有呼叫都轉到'http://www.domain.com'而不是'http://domain.com'。子域配置有時非常複雜。

+0

有沒有辦法只檢測主頁面呢?我只想要一段HTML代碼,只加載主頁面標題,而不是所有其他頁面。 header.php文件在整個網站都是通用的,所以我試圖隔離主頁面的編碼 – acctman

+0

通常你必須找出一些其他變量來檢測你的主頁面。我不知道你的網站/代碼/應用程序,我不知道。 – dompie

0

在錯誤再次得到它的風險..

爲什麼不包括頭部

<?php 
$mainfile = true; 
?> 

然後在頭

<?php 

if ($mainfile===true) 
.... 

此之前初始化主文件中的變量主文件的方式可以被稱爲任何東西,並放置在任何地方。

0

解決方案1: 如果上面的代碼寫在'http://www.domain.com/index.php'文件中,那麼它可能正常工作。 解決方案2: 否則確保$ hewb先前設置爲null值b4此代碼,以便「。=」不會添加額外的值b4'http ...'。

現在

$ hweb ='';

echo $ hweb。='http://'.$_SERVER ['HTTP_HOST']。$ _ SERVER ['PHP_SELF'];