-2

我在我的 php 代码里面

var_dump($var);

$var ='
<script type="text/javascript">
    '.$var.'
</script>'
;

var_dump($var);

第一个var_dump正确显示一些值,但第二个显示一个空字符串。

示例输出

注意:未定义变量:第3/code/IdpgMo中的 var NULL注意:未定义变量:第7/code/IdpgMo中的 var string(50) " " PHP 注意:未定义变量:第 3 行 /code/IdpgMo 中的 var PHP 注意:未定义变量:第7行 /code/IdpgMo 中的 var


为什么会这样?

4

4 回答 4

3

这是因为您的浏览器正在像处理脚本一样处理它。脚本未显示它们正在运行,因此脚本在您的源中未显示在屏幕上

于 2013-02-18T17:40:58.720 回答
3

可能是因为您将Content-Type标题保留为默认值,并且文档正在作为 HTML 处理。

脚本元素对页面没有可见的影响。

您可以通过以下方式查看数据:

  • 编写将公开数据的 JS(尽管您必须确保它在语法上是有效的 JS)。
  • 使用 DOM 检查器
  • 查看源
  • 添加header('Content-Type: text/plain');到 PHP。
于 2013-02-18T17:41:58.883 回答
0

查看 HTML 页面的源代码,如果它在 var 转储中正确显示,这应该与 javascript 语法有关

于 2013-02-18T17:42:20.283 回答
0

你可能会看到这样的东西:

字符串(48)“”

这是因为 Web 浏览器正在理解脚本标签并对其进行处理,而不是显示文本。

如果您希望能够看到文本,请使用 htmlentities 函数,以便将特殊的 HTML 字符转换为浏览器而不会将其理解为标签:

print htmlentities($var);

于 2013-02-18T17:47:21.573 回答