有条件地显示HTML没有一个PHP回声声明
包装它,我有一个代码块生成用户的个人资料,看起来像这样:有条件地显示HTML没有一个PHP回声声明
<?php
if($user_isbanned) {
echo 'User is banned.';
exit(1);
}
?>
<!-- Content to show if the user is not banned -->
这适用于我想要它做的事(停止曲线从禁止用户帐户出现),但如果我要添加页面底部的页脚,它将不会出现在禁用用户的页面上,因为exit()语句中止生成页面的其余部分。我可以重新格式化我的代码看起来像这样:
<?php
if($user_isbanned) {
echo 'User is banned.';
} else {
// Content to show if the user is not banned
}
?>
这将使我的页脚出现无论用户是否被禁止,但我不想来包装整个页面在一个大的PHP回声声明。无论如何,如果PHP条件满足或不满足,不会将整个页面放入echo语句中,以防止出现某个HTML块?
在您的第一个示例中,页脚将永远不会显示。实际上,甚至没有关闭</html>
标签,这似乎不是很理想。
你不必逐字echo
的HTML,你可以只:
<?php
if($user_isbanned) {
echo 'User is banned.';
} else {
?>
<!-- html goes here -->
<?php
}
?>
或者,你可能只是一个被禁止的用户重定向到一个单独的页面完全。
这工作完美。非常感谢你! :) – ExplodingKittens
你可以做的是这样的事情:
<html>
<head>
</head>
<body>
<div id="header"></div>
<?php if($user_isbanned){ ?>
<div id="content-banned"></div>
<?php } else { ?>
<div id="content-not-banned"></div>
<?php } ?>
<div id="footer"></div>
</body>
只呈现不同类型的内容,当用户被禁止。
这可能是最好的方法,尽管在HTML页面中的可读性我更喜欢如果():elseif() :else:和endif;因为它们看起来更像HTML标签。只是偏好,但。 – Christian
我首选的方案将是一个HTTP重定向到一个信息页面:
<?php
if($user_isbanned) {
header('Location: http://example.com/banned');
exit(1);
}
<!DOCTYPE html>
如果您希望保留目前的设计:
<?php
if($user_isbanned) {
echo 'User is banned.';
} else {
?>
<p>Content to show if the user is not banned</p>
<?php
}
注:结束?>
标记是可选的。
我建议把页脚放在一个单独的文件中,然后根据需要包含它。 – Ultimater
如果这是您的问题,您可以根据需要多次启动和停止PHP模式。 –
' ... stuff ... ...其他的东西... – CD001