2009-07-21 58 views
0

我試圖這樣做,但那麼它是不工作PHP的if else請求URI幫助

<?php 

if ($_SERVER['SERVER_NAME']=='http://www.testground.idghosting.com/idi' && $_SERVER['REQUEST_URI'] == 'our-production/') { 

     echo '<div id="services"> 
<h1>Our services</h1> 
<a href="<?php bloginfo(\'url\'); ?>" id="serv_productions" title="Our Productions"><span>Our Productions</span></a> 
<a href="<?php bloginfo(\'url\'); ?>" id="serv_services" title="Production Services"><span>Production Services</span></a> 
<a href="<?php bloginfo(\'url\'); ?>" id="serv_equipment" title="Equipment &amp; Facilities"><span>Equipment &amp; Facilities</span></a> 
<a href="<?php bloginfo(\'url\'); ?>" id="serv_pr" title="PR &amp; Media"><span>PR &amp; Media</span></a> 

</div>'; 
    } else { 
     echo '<div> do not show</div>'; 
    } ; 
?> 

看樣品click here看到它說,我們的服務在底部塊,我不希望它是部份網頁上顯示,但可見於所有其他網頁....

+0

,我爲什麼會問,你試試這個?有沒有人在這裏建議呢?你完全改變了你的答案,那根本不好。 – SilentGhost 2009-07-21 16:35:03

+0

我已經嘗試了所有建議的答案,它沒有工作.....我沒有改變任何東西,我只是在這裏應用其中一個建議,並要求程序員誰比我更有經驗..... – 2009-07-21 16:53:54

回答

10

總是縮進代碼 - 這是simplier看到錯誤

<?php 
    if ($url == "http://www.sample.com/test.php") { 
     echo "<div>whatever</div>"; 
    } else { 
     echo "<div> do not show</div>"; 
    }; 
?> 

注意大括號的位置。

+5

+1爲保持代碼縮進的建議 – Strae 2009-07-21 15:06:56

0
<?php 
    if($url == "http://www.sample.com/test.php") 
    { 
     echo "<div>whatever</div>"; 
    } 
    else 
    { 
     echo "<div> do not show</div>"; 
    } 
?> 

你的語法有點不對。

2
<?php 

if ($_SERVER['SERVER_NAME']=='www.sample.com' && $_SERVER['REQUEST_URI'] == '/test.php') { 
    echo 'blah'; 
} else { 
    echo 'asdf'; 
} 

?> 
3

或者你可以使用三元運算符。如果你喜歡,所有這一切 - 我分手了,以避免邪惡的滾動條。

echo ($url == "http://www.sample.com/test.php") 
     ? "<div>Whatever</div>" 
     : ""; 
0

目前似乎沒有直接的方法。您需要做的是通過組合$_SERVER陣列中的條目來重建URL。您可以檢查phpinfo()的結果以查看您需要的條目。

0

從更高的層面來看,您是否考慮過改變您的方法將其放到您想要的頁面上?您可以將代碼的部分放在您的代碼的一部分中,並放入一個單獨的文件中,然後將其放入您希望顯示的文件中。

2

您正在使用錯誤的值。

// REQUEST_URI is the requested URI path plus the requested URI query, so let’s strip the latter 
$_SERVER['REQUEST_URI_PATH'] = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']); 
// HTTP_HOST may not be set if the request didn’t contain the Host header field (just HTTP/1.0) 
if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST']=='www.testground.idghosting.com' && $_SERVER['REQUEST_URI_PATH'] == '/idi/our-production/') { 
    // host is "www.testground.idghosting.com" and requested URI path is "/idi/our-production/" 
} 

請參閱手冊,瞭解$_SERVER包含的值。

0

這裏的問題是,在回聲字符串中,你打開一個PHP標記,但這已經是PHP代碼,所以你不必打開該標記。 如果您使用的是HTML代碼,則必須使用一個。

0

試試這個,它是爲我工作...

$data['test']=basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']); 

if($data['test'] == 'our-production') 
{ 
echo '<div id="services"> 
<h1>Our services</h1> 
<a href="<?php bloginfo(\'url\'); ?>" id="serv_productions" title="Our Productions"><span>Our Productions</span></a> 
<a href="<?php bloginfo(\'url\'); ?>" id="serv_services" title="Production Services"><span>Production Services</span></a> 
<a href="<?php bloginfo(\'url\'); ?>" id="serv_equipment" title="Equipment &amp; Facilities"><span>Equipment &amp; Facilities</span></a> 
<a href="<?php bloginfo(\'url\'); ?>" id="serv_pr" title="PR &amp; Media"><span>PR &amp; Media</span></a> 

</div>'; 
} else { 
echo '<div> do not show</div>'; 
} ; 

}