'为什么'脚本不打印任何东西?

时间:2013-10-22 04:50:29

标签: php echo

当我运行以下脚本时,没有任何内容被打印出来。为什么会这样?

<?php
  $var = "<?php echo 'Hey !'; ?>";
  echo $var;
?>

5 个答案:

答案 0 :(得分:1)

它回应“没有”,因为您的浏览器不理解<?php标签,因此它不会显示标签内容;它应该在您选择查看页面源时显示一些内容。

此行为的原因是脚本的默认内容类型设置为text/html(您可以通过查看响应标头来确认),并且在HTML的上下文中,您应该使用{{3 }}

echo htmlspecialchars($var);

事实上,作为一般规则,输出时应始终适当地转义变量。

或者,您可以让浏览器知道您的输出不应被解释为HTML;您可以通过设置适当的响应标头来完成此操作:

header('Content-Type: text/plain');

使用上述内容类型,浏览器会逐字显示您的输出。

答案 1 :(得分:0)

更改此

$var = "<?php echo 'Hey !'; ?>";

进入这个

$var = "&lt;?php echo 'Hey !'; ?&gt;";

答案 2 :(得分:0)

因为你的syntex是错误的php引擎... 改变为:

<?php
  $var = "<?php echo 'Hey !'; ?>";
  echo $var;
?>

<?php
  $var = 'Hey !';
  echo $var;
?>

答案 3 :(得分:0)

将内容类型设置为text,您可以在浏览器中查看输出。

<?php
  header('Content-type: text/plain');
  $var = "<?php echo 'Hey !'; ?>";
  echo $var;
?>

这是因为你的浏览器需要html而且它不理解输出中的php标签。

使用htmlspecialchars函数的其他方法是更好的选择。

答案 4 :(得分:0)

尝试这样的事情

$var = '<?php echo \'Hey !\';?>';
echo htmlspecialchars($var);