2012-10-07 67 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

相關問題