0

我想根据 url 隐藏部分页面内容。

目前,如果我输入:

example.co.uk/index.php?brand=apple

然后将显示苹果内容 - 但是如果没有显示任何品牌,我想隐藏页面上的一些默认 div。

我的思路是:

    <?php if brand==""
echo "<!----- comment out all the default HTML"
/>

default html here

<?php if brand==""
echo "-->"
/>

如果网址中没有提到品牌,那是否是清除页面的正确方法?

4

5 回答 5

3

你不需要注释掉 HTML,你只需要不输出你不想显示的 HTML。

<?php if (/* something */) : ?>

    Output HTML for something.

<?php endif; ?>

true除非条件是... ,否则不会输出“HTML for something”

于 2012-07-16T08:23:17.567 回答
1

您需要注意,即使您用注释“隐藏”您的 html,它也不是真正隐藏的,因为首先它在源代码中仍然可见,其次,您很容易遇到麻烦,例如:

您在其中有一个评论<!-- text 1和另一个评论<!-- text 2 -->,然后想要关闭第一个评论-->

文本 2 的关闭实际上会关闭文本 1,等等。所以这真的不是一个干净的解决方案。如果您使用 PHP,最好只在您的 html 中打印您想要显示的代码。

如果您已经$_GET['brand']使用iforswitch来回显您想要显示的内容。

编辑:看来,你只想显示一些元素,如果$_GET['brand']不是空的,对吧?在这种情况下:

if(isset($_GET['brand'])) {
    // echo your html here...
}
于 2012-07-16T08:27:40.247 回答
0

不要隐藏你不需要的东西,只显示你需要的东西:

<?php

switch ( $type ) {

case "apple":
  // apple content
break;

case "peaches":
    // peaches content
break;

...


}

?>
于 2012-07-16T08:24:40.140 回答
0

你甚至不需要评论;只是 PHP if 块就可以了:

<?php if ($brand) { ?>

...html - note this section is bounded by PHP, but is not PHP code...

<?php } ?>

或者,将您的“默认 html”存储在一个字符串中,并回显它:

<?php
if ($brand) {
  echo $strHTML;
}
?>
于 2012-07-16T08:22:04.087 回答
0

不,在 HTML 4 和 XHTML 中表示“注释开始”和“注释结束”的注释语法是--这样的,因此您的语法在第 1 行有一个封闭的注释。

你想要<!--

如果 HTML 包含注释,这将中断。

您还需要一些()用于if.

如果匹配匹配,您最好不要在输出中包含 HTML。

<?php 
    if (brand != "") {
?>
HTML here
<?php
    }
?>
于 2012-07-16T08:23:36.647 回答