你能在嵌入在 php 中的 html 中嵌入一个 php 指令吗?


Can you embed a php instruction in html that is embedded in php?

我尝试了这样的事情:

// $count is an incrementing number
echo '<td><input type = "radio" name = "selected" 
      value = "<?php echo htmlspecialchars($count); ?>"></td>';

我也试过:

echo '<td><input type = "radio" name = "selected" value = "<?php echo 
"$count"; ?>"></td>';

两者都没有用。我意识到尝试以这种方式使用 php 编写 html 似乎很奇怪,但我不知道如何根据某些条件显示 html。

添加代码段所在的整个函数:

function makeRow($row_name,$row_ticket) {
//create html table row from mysql table row passed as ticket object param
$count = 0;
foreach ($row_array as $key => $value) {
   # code...
   $count++;
   if(strcmp($key, "select")==0){
     echo '<td><input type = "radio" name = "selected" 
     value ="' . <?php echo htmlspecialchars($count); ?> . '"></td>';
   }
   else if(strcmp($key, "body")==0){/*do not make cell for body*/}
   else { echo "<td>$value</td>";}
 }
}

它无法工作,因为您无法像那样连接字符串,它会引发 php 解析错误。我没有足够的声誉来评论,所以我添加自己的答案:

// $count is an incrementing number
echo '<td><input type = "radio" name = "selected" 
value ="' . htmlspecialchars($count) . '"></td>';

您不能在另一个标签中添加新的 php 打开/关闭标签。

更新:

实际上,您不需要htmlspecialchars()函数来输出脚本 - 生成的整数变量,因此您也可以跳过它。

你为什么不直接连接字符串和嵌入的<?php

// $count is an incrementing number
echo '<td><input type = "radio" name = "selected" 
    value ="' . <?php echo htmlspecialchars($count); ?> . '"></td>';

注意:我也认为你对PHP和HTML的解释有一个根本性的误解:

  1. PHP 是一种专为 Web 开发而设计的服务器端脚本语言...(请参阅此维基百科文章)。这意味着PHP代码将在到达浏览器之前在服务器上执行。
  2. HTML 被浏览器解释为纯文本。浏览器中不执行 PHP。当浏览器解释时,您的 HTML 将如下所示:

<td>
    <input type="radio" name="selected" value="<?php echo "$count"; ?>">
</td>