我有一个名为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']; ?>";
可以创建一个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
文件时可能导致语法错误。