簡體   English   中英

如果是index.php,則顯示“this”,如果沒有,則顯示“this”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM