我在服务器上的某个位置有一个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上检查它是否正确。