2

このコードをheader.tplに入れましたが、すべてのページに div が表示されています

{if cart.php}
<div> This is Cart.PHP </div>
{/if}

この div をcart.phpページのヘッダーのみに表示したい。

4

2 に答える 2

2
{if __FILE__ eq "cart.php"}
    do your thing
{/if}

@JaredFarrish が言うように、比較は常に true を返します。これは、ファイル名 (この場合はcart.phptrue ) であり、現在のファイル名であるかどうかを尋ねているためです。

ただし、これはインクルードでは機能しない場合があり(あなたのケースのように)、次のようなものを使用することをお勧めします:

{if $smarty.server.PHP_SELF eq "/cart.php"}
    do your thing
{/if}

ファイルがサブディレクトリにある場合は、それをフルパスと比較するか$smarty.server.PHP_SELF、パスも返すため、文字列からファイル名を抽出する必要があることに注意してください。

これを行うには、basename関数を変数に直接使用できるため、それでbasename($smarty.server.PHP_SELF) eq "cart.php"十分です。

于 2012-09-09T01:30:08.040 に答える
0

サーバー変数 PHP_SELF を使用します (「/cart.php」を、サイトのルートからカート ファイルがある場所までの正確なパスに変更します。

if ($_SERVER['PHP_SELF'] == "/cart.php") {
    echo "<div>This is cart.php</div>";
}
于 2012-09-09T01:28:22.520 に答える