我想根据网址隐藏页面内容的一部分。
目前,如果我输入:
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']
,请使用if
或switch
来回显您想要显示的内容。
编辑:看起来,你只想显示一些元素,如果$_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
}
?>