您好我有这个php页面,根据用户输入基本上看起来不同。如果用户已登录,则输出一个表示登录用户的html表。如果用户登录失败,我输出一个表示失败登录用户的html表,即一些红色文本等。问题是,现在我通过输出(php echo函数)html字符串来做到这一点。这真的很糟糕,如果我必须在* ss中改变一些痛苦。
有没有办法让我创建一个只包含一个表然后输出的html文件?
或许我可以创建一个完整的html页面,但只输出它的表格部分?
提前致谢
答案 0 :(得分:2)
同时,你可以简单地创建文件,然后在页面中include
。
更强大的系统通常需要更好的设计。
答案 1 :(得分:0)
您好像在询问是否可以使用if语句INCLUDE
文件。类似的东西:
if ($user == "loggedin") include ("loggedin.php");
答案是否定的。我试过了。
如果你想让HTML标记更干净(我的意思是一次不回应1行)你可以做的是使用heredocs:
$loggedin = <<<someText
<table><tbody><tr><td>Hello $username</td></tr></tbody></table>
someText;
if ($user == "loggedin") echo $loggedin;
您甚至不必将其保存为变量,只需回复它:
echo <<<someMore
<table><tbody>
<tr>
<td>You last logged in $logdate</td>
</tr>
</tbody>
</table>
someMore;
Heredocs将完全按照您的方式出现在页面上,除非您可以在其中使用PHP变量。您甚至可以在heredoc中使用数组变量,如下所示:
echo <<<somearrays
{$arrayname1[$i]}<br>
{$arrayname2[5]}<br>
{$arrayname3[7]}<br>
somearrays;
澄清:您要么说echo
,要么$variable =
然后把&lt;&lt;&lt; (这是heredoc的关键字)
放一个heredoc名称(在这个例子中是somearrays)
把你的HTML文字
用heredoc名称和分号结束它
答案 2 :(得分:-1)
您可以创建不同的html文件,并使用以下内容输出所需的文件:
echo file_get_contents( 'Path/to/your/specific file/' );
指向file_get_contents
API http://php.net/file_get_contents
从下面的评论中可以看出,我相信include
是一个更好的解决方案