1

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

例子:

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

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

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

这很好,但我也有很多我正在使用的 javascript 和 jquery 插件。它们都有外部 .js 文件。如何获取$LANGjavascript 中的值以使其在 .js 文件中可用?

我想我需要在 .js 的顶部添加代码,以便在运行其余的 javascript 代码之前以某种方式读取 .php 数据。我只是完全不知道该怎么做。

我已经看到了一些可能的想法,但我真的不想对所有内容进行重大重写。寻找一个简单的解决方案。任何人都可以帮助这个无知的新手吗?

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

我现在有一个包含这段代码的 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>

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

感谢下面人们的评论,我摆脱<script>了 lang.php 文件中的 ,它起作用了。

我现在有一个包含这段代码的 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; ?>;
4

6 回答 6

2

您可以在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。

于 2013-03-26T16:18:44.690 回答
0

我认为正确的做法是:

var foo = "<? echo $LANG['bar']; ?>";

您在 js 代码中编写的 php 代码越少,它就越好、越干净。

于 2013-03-26T16:13:54.000 回答
0

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

于 2013-03-26T18:08:54.790 回答
0

您可以创建一个 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>
于 2013-03-26T16:43:25.280 回答
0

您可以在需要在 javascript 中查看 $LANG 的文件中使用简单的脚本标记来执行此操作。

1)创建一个与 $LANG 的 javascript 表示相呼应的 php 文件 - 让我们称之为 lang.php 它应该执行类似的操作

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

2)将此文件包含在您的html中,然后您可以将变量英语等用作普通的javascript变量。

<script language="javascript" src="http://whatever.com/lang.php"> </script>
于 2013-03-26T16:10:35.653 回答
0

尝试:

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

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

于 2013-03-26T16:13:24.717 回答