我在一个项目中工作,该项目定义了以下限制:
我的PHP文件不能有多个打开或关闭标记
所以它是从上到下的PHP,但我可以通过'import'添加静态内容。
将静态HTML内容添加到我的PHP索引文件(如输出网站菜单标题或公式)并同时解析文件中的PHP变量的正确/优雅方法是什么?
类似于制作HTTP POST(登录或注册)的公式,并在出现不匹配等情况时显示先前输入的电子邮件地址等。
一种方法是
echo "<form ...> \n <input ... value='$lastemail'>";
但我不喜欢引用。 echo&lt;&lt;&lt;对于这个目的,EOF也不是很好。 我认为HTML代码应该保持在一起而不将其分成多个回声,以便进行验证。
所以我正在寻找一个很好的解决方案来导入/集成静态HTML代码,比如模板系统,仍然可以解析PHP变量。
更新:
限制是不混合HTML和PHP代码。
我想我需要一个引擎/类/函数,用PHP代码替换HTML模板中的变量。就像搜索$ {variable}并将其替换为php $变量一样,就好像它是PHP代码一样 我只是想也许PHP中已经存在一些东西可以解决这个问题。
更新: 我应该反对这个要求吗? 听到在该领域有悠久历史的专业PHP开发人员的意见,将会非常有趣。 (On限制不混合HTML和PHP代码。)
答案 0 :(得分:1)
答案 1 :(得分:0)
我现在提供的解决方案可能看起来既冗长又费力,但却是解决这些限制问题的最好方法之一。创建一个包含两个表的数据库,其中一个表将存储所有静态数据,即HTML代码,而另一个表存储动态数据,即您想要个性化的数据。然后,您可以使用数据库分别弹出动态和静态数据,所有这些都只使用纯PHP。
<?php
$host = "127.0.0.1";
$user = "root";
$password = "****";
$db = "project";
$txt = NULL;
$conn = mysqli_connect($host, $user, $password, $db);
if(!conn){
header("location:error.htm");
}
$query1 = "SELECT dynamicdata FROM projectdynamicdata WHERE pagename ='index'";
$resultset1 = mysqli_query($conn, $query1);
while($row = mysqli_fetch_assoc($resultset1){
$txt = $row["dynamicdata"];
}
$query2 = "SELECT htmlpage FROM projectstaticdata WHERE pagename='index'";
$resultset2 = mysqli_query($conn, $query);
while($row = mysqli_fetch_assoc($resultset){
echo $row["htmlpage"];
}
mysqli_close($conn);
?>
这就是我要解决这个问题的方法。