如何回显包含<;的字符串;?php?>;

如何回显包含<;的字符串;?php?>;,php,Php,我想生成一个包含HTML和一些php命令的php页面。问题是当我提交下面的代码时,我得到了这个输出 <?php echo '$stfromyearErr '?><?php echo '$stfrommonthErr '?><?php echo '$stfromdayErr '?> <?php echo '$sttoyearErr '?><?php echo '$sttomonthErr '?><?php echo '$s

我想生成一个包含HTML和一些php命令的php页面。问题是当我提交下面的代码时,我得到了这个输出

<?php echo '$stfromyearErr  '?><?php echo '$stfrommonthErr  '?><?php echo '$stfromdayErr  '?> <?php echo '$sttoyearErr  '?><?php echo '$sttomonthErr  '?><?php echo '$sttodayErr  '?>

而不是php命令。我该如何解决这个问题?? 谢谢

<?php

$page = "<html lang='en'> <head> <meta charset='utf-8' /> </head>
<body><table width='990' border='0' align='center'><tr><td width='54%' colspan='2'>
<span class='error'>&lt?php echo '\$stfromyearErr &nbsp;';?&gt&lt?php echo '\$stfrommonthErr
&nbsp;';?&gt&lt?php echo '\$stfromdayErr &nbsp;';?&gt &lt?php echo '\$sttoyearErr &nbsp;';?
&gt&lt?php echo '\$sttomonthErr &nbsp;';?&gt&lt?php echo '\$sttodayErr &nbsp;';?&gt</span></td>
</tr></table> </body></html>";  
echo $page; 
?>

您将变量封装在单引号中,因此它们以纯文本形式输出,只需删除任何echo语句上的逗号即可解决此问题

<?php echo $stfromyearErr; ?>


您将PHP标记作为
?PHP
,然后在浏览器中显示。它将看起来像浏览器中的php代码,因为浏览器将
呈现为
当您想要输出php代码,包括标记甚至语法高亮显示时,您可以使用函数
highlight\u string()


有两件事,首先删除引号:

<?php

$page = "<html lang='en'> <head> <meta charset='utf-8' /> </head>
<body><table width='990' border='1' align='center'><tr><td width='54%' colspan='2'>
<span class='error'>&lt?php echo $stfromyearErr &nbsp;?&gt&lt?php echo $stfrommonthErr
&nbsp;?&gt&lt?php echo $stfromdayErr &nbsp;?&gt &lt?php echo $sttoyearErr &nbsp;?
&gt&lt?php echo $sttomonthErr &nbsp;?&gt&lt?php echo $sttodayErr &nbsp;?&gt</span></td>
</tr></table> </body></html>";
echo $page;

?>

你的问题是为什么变量插值不会发生在单引号中?或者你真的想用未处理的PHP标记生成一个HTML页面吗?我想用未处理的PHP标记创建一个HTML页面。。谢谢这是预期的回波输出吗<代码>
使用
$stfromyearr=“YEAR”$stfrommonthErr=“月”$stfromdayer=“日”$stfromdayErr=“到年”$sttomonthErr=“到月份”$sttodayErr=“今天”作为测试变量。我不知道你想要实现什么,所以我不能给你一个明确的答案。嗨,弗雷德,我想要的是在php(例如dates.php)中动态创建一个表单,然后显示给我的客户,然后由客户填充它。。。然后,这个date.php将验证表单并通过$…Err变量显示任何错误。这对我不起作用,因为我想创建一个带有未处理的php标记的HTML页面…但无论如何,谢谢…有趣的是,如果我使用echo,它会生成php,但它仍然显示,并且不会将这段代码视为php(但同一页面上的其他php代码正如我们所期望的那样是不可见的)。但是,如果我使用file\u put\u内容,生成的php工作正常。不知道为什么!!为什么要执行它?php代码只是文本。你在回显一些看起来像php代码的文本。“回显”不会执行任何东西,所以您回送出来的任何php代码都保持为纯文本。将该php代码填充到文件中,然后将其反馈回php,则会执行它。
<?php

    $foo = "<?php echo 'hello world!'; ?>";
    file_put_contents('hello.php', $foo);
?>
<?php
highlight_string("<?php echo '$stfromyearErr  '?><?php echo '$stfrommonthErr  '?><?php echo '$stfromdayErr  '?> <?php echo '$sttoyearErr  '?><?php echo '$sttomonthErr  '?><?php echo '$sttodayErr  '?>");
?>
<?php

$page = "<html lang='en'> <head> <meta charset='utf-8' /> </head>
<body><table width='990' border='1' align='center'><tr><td width='54%' colspan='2'>
<span class='error'>&lt?php echo $stfromyearErr &nbsp;?&gt&lt?php echo $stfrommonthErr
&nbsp;?&gt&lt?php echo $stfromdayErr &nbsp;?&gt &lt?php echo $sttoyearErr &nbsp;?
&gt&lt?php echo $sttomonthErr &nbsp;?&gt&lt?php echo $sttodayErr &nbsp;?&gt</span></td>
</tr></table> </body></html>";
echo $page;

?>
<?php echo your_var_1  ?><?php echo your_var_2  ?><?php echo your_var_3 ?> <?php echo your_var_4  ? ><?php echo your_var_5  ?><?php echo your_var_6  ?>
echo str_replace("&nbsp;?&gt", "", str_replace("&lt?php echo", "", $page));