当我运行以下脚本时,没有打印任何内容。为什么会这样?
<?php
$var = "<?php echo 'Hey !'; ?>";
echo $var;
?>
它回显“nothing”,因为您的浏览器不理解<?php
标签,因此它不会显示标签内容;当您选择查看页面源时,它应该会显示一些内容。
这种行为的原因是您的脚本的默认内容类型设置为text/html
(您可以通过查看响应标头来确认这一点)并且在 HTML 的上下文中,您应该使用htmlspecialchars()
echo htmlspecialchars($var);
事实上,作为一般规则,您应该始终在输出变量时适当地对其进行转义。
或者,您可以让浏览器知道您的输出不应被解释为 HTML;您可以通过设置适当的响应标头来做到这一点:
header('Content-Type: text/plain');
使用上述内容类型,您的输出将由浏览器逐字显示。
改变这个
$var = "<?php echo 'Hey !'; ?>";
进入这个
$var = "<?php echo 'Hey !'; ?>";
因为您的语法对于 php 引擎来说是错误的...更改为:
<?php
$var = "<?php echo 'Hey !'; ?>";
echo $var;
?>
至
<?php
$var = 'Hey !';
echo $var;
?>
将内容类型设置为text
,您可以在浏览器中看到您的输出。
<?php
header('Content-type: text/plain');
$var = "<?php echo 'Hey !'; ?>";
echo $var;
?>
这是因为您的浏览器需要 html 并且它不理解您在输出中的 php 标签。
其他明智的使用htmlspecialchars
函数将是一个更好的选择。
尝试这样的事情
$var = '<?php echo \'Hey !\';?>';
echo htmlspecialchars($var);