从外部javascript文件读取var并将其转换为php变量


Read var from external javascript file and convert it to php variables

我在服务器上的某个位置有一个javascript文件(我们称之为external.js),其中包含以下内容:

var exchange = {
"USD": {
    "transfer": 203.49,
    "cash": 90.08,
    "average": 203.49,
},
"EUR": {
    "transfer": 231.16,
    "cash": 102.32,
    "average": 231.16,
},
"USDCOL": {
    "rate": 2625.00,
    "ratecash": 2350.00,
    "ratetrm": 2500.59,
    "trmfactor": 0.05,
    "trmfactorcash": 0.06
},
"EURUSD": {
    "rate": 1.1359
}
"GOLD": {
    "rate": 1203.95
}}
//this code is simplified there is a lot more values

我想从PHP中读取该文件(类似于对外部xml文件所做的操作),并将这些字符串拆分为变量,如下所示:

$USD_transfer = 203.49;
$USD_cash = 90.08;
$USD_average = 203.49;
$EUR_transfer = 231.16;
$EUR_cash = 102.32;
$EUR_average = 231.16.49;
$GOLD_rate = 1203.95;

然后继续执行我的php代码的其余部分。

我尝试过file_get_contents,读取文件的一部分,逐个提取每个变量值,但这显然是不切实际的。

<?php
//Read 6 characters starting from the 166 character to get $USD_transfer
$file = file_get_contents('./external.js', NULL, NULL, 166, 6);
$USD_transfer = $file;
?>

PD:由于我使用的是一个预先制作的(不可更改的)代码,它只生成(仅)那个javascript文件,所以我不能修改它,如果它是我选择的,我会使用数据库。。。但事实并非如此。

我的编码能力非常有限,你们能帮帮我吗?

如果您将其从所述变量中删除并使其成为json文件,即:

{
    "USD": {
        "transfer": 203.49,
        "cash": 90.08,
        "average": 203.49,
    },
.....etc
}

你可以在上面使用json_decode()。按照现在的方式,你必须以某种方式使用ajax将它们发送到处理它的php脚本。如果你使用的是如图所示的精确数据结构,你可以根据需要执行以下操作来分配变量。

$json = file_get_contents(getcwd() . '/jsonfile.json');
$data = json_decode($string);
foreach($data as $key => $items) {
    foreach($items as $identifier => $value) {
        ${$key . '_' . $identifier} = $value;
    }
}

它将利用PHP的变量来创建这样的变量:KEY_identifier,意思是USD_transfer。。。。等

允许您这样调用变量:

echo $USD_transfer;

工作示例


另外,请注意:

您的JSON对象不是有效对象,您可以在JSONLint上检查它是否正确。