PHP - 如果 html 注释


PHP - if html commenting

我想根据网址隐藏页面内容的一部分。

目前,如果我输入:

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

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

我在想:

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

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

你不需要

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

<?php if (/* something */) : ?>
    Output HTML for something.
<?php endif; ?>

除非条件true,否则不会输出"某物的 HTML"......

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

您有一个注释<!-- text 1,此<!-- text 2 -->中还有另一个注释,然后想要关闭第一个注释-->

文本

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

如果您有$_GET['brand'],请使用ifswitch来回显您想要显示的内容。

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

if(isset($_GET['brand'])) {
    // echo your html here...
}

你甚至不需要注释;只有 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;
}
?>

不要隐藏不需要的内容,仅显示所需的内容:

<?php
switch ( $type ) {
case "apple":
  // apple content
break;
case "peaches":
    // peaches content
break;
...

}
?>

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

你想要<!--.

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

您还需要一些() if

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

<?php 
    if (brand != "") {
?>
HTML here
<?php
    }
?>