在javascript中导入PHP变量


import php variables in javascript

我有一个名为english.php的文件,其中包含大量变量值。$LANG数组的所有部分

例子:

$LANG['value_1']="abc";

$LANG['value_2']="xyz";

然后我有一百万个不同的。php文件使用require_once('english.php');

这很好,但我也有很多javascript和jquery插件,我正在使用。它们都有外部的.js文件。我怎么能得到$LANG在javascript的值,它是可用的。js文件?

我想我需要将代码添加到.js的顶部,以某种方式读取.php数据,然后再运行其余的javascript代码。我完全不知道该怎么做。

我已经看到了一些可能的想法,但我真的不想做一个主要的重写所有的东西。寻找一个简单的解决方案。有谁能帮助这个无知的新手吗?

=======根据收到的评论添加了更多信息=======

我现在有一个lang.php,其中包含以下代码…

<?php
session_cache_limiter('nocache');
session_start();
require_once ($_SESSION['language'].'.php');

$js_out = json_encode($LANG);
?>
<script>
    var LANG = <?php echo $js_out; ?>;
    alert(LANG.value_1);
</script>

当我访问lang.php时,它成功访问了english.php并警告'abc'

我的问题是,当添加到不同的文件时,这不起作用…

<script type='text/javascript' src='lang.php'></script>
<script>
    alert(LANG.value_1);
</script>

=======编辑添加解决方案=======

感谢下面的人的评论,我在lang.php文件中去掉了<script>,它工作了。

我现在有一个lang.php,其中包含以下代码…

<?php
session_cache_limiter('nocache');
session_start();
require_once ($_SESSION['language'].'.php');

$js_out = json_encode($LANG);
?>
var LANG = <?php echo $js_out; ?>;

您可以在english.php中包含以下代码:

<?php

$LANG['value_1']="abc";
$LANG['value_2']="xyz";
$js_out = json_encode($LANG);
?>
<script>
    var LANG = <?php echo $js_out; ?>;
</script>
然后,在页面加载后,javascript可以看到

LANG。

你可以在需要在javascript中看到$LANG的文件中添加一个简单的script标签。

1)创建一个php文件,它与$LANG的javascript表示相呼应-我们称之为LANG .php它应该像

echo 'var english ="' . $LANG['value_1']  "';";

2)在你的HTML中包含这个文件,然后你可以使用变量English等作为正常的javascript变量。

<script language="javascript" src="http://whatever.com/lang.php"> </script>

尝试:

<script ...>
var mydata = <?=json_encode($LANG)?>;
</script>

json_encode返回一个包含JSON表示的字符串。http://php.net/manual/en/function.json-encode.php

我认为正确的做法是:

var foo = "<? echo $LANG['bar']; ?>";
你在js代码中写的php代码越少,它就越好,越干净。

可以创建一个PHP文件:

<?php
header('Content-Type: text/javascript');
echo 'var lang = {};';
foreach ($LANG as $key => $value) {
    echo "lang['$key'] = '" . addslashes($value) . "';";
}
?>

然后链接脚本,您可以使用lang对象:

<script type='text/javascript' src='/path/to/lang.php'></script>
<script type='text/javascript'>
alert(lang.value_1);
</script>

删除<script></script>标签,这些标签在链接为text/javascript文件时可能导致语法错误。