如何从JavaScript中读取PHP变量?

如何从JavaScript中读取PHP变量?,php,javascript,variables,Php,Javascript,Variables,我知道这方面有很多问题,但我无法让它发挥作用 我的HTML(test.htm)只有以下代码 <?php $var = 'foo'; ?> <script type="text/javascript" language="javascript"> var val = "<?=$var?>"; alert(val); </script> var val=“”; 警报(val); 但是当我用浏览器打开文件时,val的值是”,而不是“foo” 我怎样

我知道这方面有很多问题,但我无法让它发挥作用

我的HTML(test.htm)只有以下代码

<?php
$var = 'foo';
?>
<script type="text/javascript" language="javascript">
var val = "<?=$var?>";
alert(val);
</script>

var val=“”;
警报(val);
但是当我用浏览器打开文件时,val的值是
,而不是“foo”

我怎样才能让它工作

但是当我用浏览器打开文件时,val的值是“”,而不是“foo”

听起来您已经(并且正在使用PHP<5.4.0)。试一试

尝试:

var val=”“;

除非您有一些允许它的配置,
.htm
文件不会执行PHP代码,否则您必须使用
.PHP
文件

如果您在浏览器中查看HTML页面源代码,您可能会看到所有PHP代码


唯一的另一种解释是短标记
未启用,您必须使用
可能您没有启用短标记,请尝试

您可能还需要注意字符串和其他内容的转义,因此如果您有比字符串更复杂的内容,可以使用JSON

<?php $var = array( 'stuff' => 'things' );?>

<?php echo json_encode($var);?>


你的帖子说你的文件扩展名是.htm。您是否将web服务器设置为将.htm文件解析为PHP?如果您的服务器只解析.php文件,请重命名您的文件并重试,因为这可以解释为什么没有处理。如果设置为parse.htm文件,则T.J.Crowder的答案最有可能是问题。

您的PHP环境支持短标记吗?尝试
只是为了测试。您的测试文件是test.htm?不是php吗?@CMKanode:我读过了,不错。
var val = <?php echo json_encode($var) ?>;
var val = "<?php echo $var; ?>"; 
<?php $var = array( 'stuff' => 'things' );?>

<?php echo json_encode($var);?>