[英]If index.php, show “this”, if not, show “this”
拼命希望有人可以幫忙解決這個問題。 我是php的新手。 我嘗試通過教程自我教學,我搜索高低無濟於事。
基本上我想要實現一個“If index.php頁面,顯示foo
,如果沒有在index.php頁面上,顯示bar
”
有任何想法嗎?
我希望我能夠解釋得這么好......
index.php包含一個側欄:
require_once('./cache/templates/sidebar.php');
構建的每個后續頁面都使用此index.php文件中定義的內容,這意味着sidebar.php是必須的。
我想編輯sidebar.php以包含僅在索引頁面上顯示的廣告。
目前,當我編輯sidebar.php時,例如,顯示字母“B”,它將顯示在主頁上,而其他每個頁面都會顯示;
索引頁: http : //img.photobucket.com/albums/v684/nilsatis/1stack.jpg
每隔一頁: http : //img.photobucket.com/albums/v684/nilsatis/2stack.jpg
如何指示包含文件的一個區域顯示在一個頁面上,但不包括在其他頁面上顯示?
非常感謝任何幫助。
[編輯]這是有問題的網站:www.grandoldteam.com。 你可以看到我在哪里有“測試”文本 - 這是在sidebar.php中輸入的。 我希望這篇文章(未來的廣告)只在索引頁面上展示,而不是其他地方。
[編輯2]這是在index.php文件中調用sidebar.php的點;
<p class="page_desc">'.$PAGE['subtitle'].'</p>
' );
}
if (isset($url[1])) require_once('./cache/html/'.$url[0].'/'.$url[1].'.php');
else require_once('./cache/html/'.$url[0].'.php');
}
}
require_once('./cache/templates/sidebar.php');
}
require_once('./cache/templates/footer.php');
這就是我可以編輯sidebar.php來顯示想要的文本;
<div class="clear"></div>
test
</div>
<p>
</div>
要按照您想要的方式執行,請使用$ _SERVER超全局。 腳本的名稱可以在多個位置找到。
if (strpos($_SERVER['SCRIPT_NAME'], 'index.php') !== false) // index page...
另一個選擇是讓index.php在包含側欄之前設置一些變量,如$ show_ad,側欄頁面可以檢查該變量。
我不建議檢索調用者腳本的名稱,因為幾個頁面在不同的文件夾中可以具有相同的名稱,並且還因為您可能希望將來更改頁面名稱。
使用全局變量或常量來說明哪個頁面是調用者。
index.php文件:
<?php
$GLOBALS['caller_page'] = 'index';
require_once('./cache/templates/sidebar.php');
...
的sidebar.php:
<?php
...
if ( isset($GLOBALS['caller_page']) && ($GLOBALS['caller_page']=='index') ) {
... // special action for the index page
}
...
試試這個,
在頁面上創建一個只想顯示“foo”的會話。
然后這樣做
if ($_SESSION['valid']) {
//if the session is present, then show
}
else {
//if not,
}
如果您的文件名發生變化,這不僅是一種更好的方式嗎? 這種方式無關緊要,因為它正在檢查會話,而不是可能改變的事情:)
如何解決:
在頂部sidebar.php,添加以下行:
print_r($_SERVER);
這將顯示$ _SERVER變量的完整內容。 從那時起,你應該看到一些可以使用的候選者,以及在某些時候可能對你有用的其他東西。
一旦確定了要使用的內容,就需要檢查它是否包含字符串index.php
。 一個好方法是使用:
if (strpos($_SERVER['SCRIPT_NAME'], 'index.php') !== false) {
}
這個慣用線檢查腳本名稱中字符串index.php的位置是否為false,即它是一個值。
測試價值
$_SERVER[ 'REQUEST_URI' ]
反對文字
“的index.php”。
如果它是相同的。 你index.php正在執行。
所有這些答案都很棒,但我提供了不同的練習。 它並不是更好,但在我看來它更舒服。
當你這樣做:
require_once('./cache/templates/sidebar.php');
在index.php上,改為:
require_once('./cache/templates/sidebar.php?ad=1');
現在,在sidebar.php上,添加:
if(isset($_GET['ad'])&& $_GET['ad']=='1')
// display ad
else
//don't display ad
編輯:
你想要工作代碼,好......
假設您的廣告實際上是stackoverflow徽標的圖片:
現在在sidebar.php你會有類似的東西:
<?php
....
if(isset($_GET['ad'])&& $_GET['ad']=='1')
{
?>
<div>
<a href="http://stackoverflow.com">
<img src="http://blog.vicompany.nl/wp-content/uploads/2011/04/stackoverflow-logo-250.png" alt="ad"/>
</a>
</div>
<?php
}
else
{
}
....
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.