2012-10-07 69 views
2

需要一些帮助来将PHP添加到HTML中。我试图在HTML中嵌入PHP代码片段,但输出显示的是代码片段本身,而不是评估它。将自定义PHP源代码添加到HTML中

在HTML(register.php)中,加入的代码的下面行

<tr> 
    <td> 
     <?php utils::addControl('Name','label'); ?> 
    </td> 
    <td> 
     <?php utils::addControl('username','text'); ?> 
    </td> 
</tr> 

这里是utils的源::的AddControl()

public function addControl($ctlName, $type) { 

    switch ($type) { 
     case 'text': 
      echo <<<EOT 
      <input type='text' name='$ctlName' value='&lt?php echo htmlspecialchars($ctlName); ?&gt'> 
    EOT; 
      break; 
     case 'label': 
      echo "<label for id='lbl$ctlName'>$ctlName</label>"; 
      break; 
    } 

的输出被示出在文本<?php echo htmlspecialchars(username); ?>框。

应该做些什么才能正确评估PHP代码段。 TIA。

+0

它是一个PHP文件吗?只有服务器知道将文件视为PHP时,PHP代码才会评估。 – Virendra

+0

是的,它是一个.php文件。 – user1727110

+0

您确定您在启用PHP的服务器上运行该文件(相反,您只需使用浏览器打开本地.php文件)? –

回答

3

服务器通常只配置了单次通过脚本的时候,找PHP ...

Source → PHP → Output 

不是双通:

Source → PHP → PHP → Output 

如果它没有再进行双通,你会如果您想要在输出中包含序列<?php(如果打开短标签,甚至可以使用<?),则必须跳过这个循环。

编写您的PHP,以便首先生成您想要的输出,不要尝试从PHP生成PHP。

$htmlCtrlName = htmlspecialchars($ctlName); 
echo "<input type='text' name='$htmlCtlName' value='$htmlCtrlName'>" 
+0

如果它不清楚,'value ='&lt; php echo htmlspecialchars($ ctlName); ?&gt''是PHP传递给浏览器在html中显示的内容。另一种方法是将其更改为全部在同一行中: 'value ='。htmlspecialchars($ ctlName)。'' –

+0

感谢您的洞察力昆汀。现在我明白为什么代码片段没有被评估。 – user1727110

相关问题