我有一个位于我服务器某个地方的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文件我无法修改它,如果我选择我将使用数据库......但事实并非如此
我的编码技巧非常有限,你能帮助我吗?
答案 0 :(得分:1)
如果从所述变量中删除它并使其成为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's variable variables创建如下变量:KEY_identifier
,意为USD_transfer
....等等。
允许您这样调用变量:
echo $USD_transfer;
另外,快速说明:
您的JSON
对象不是有效对象,您可以在JSONLint检查它是否正确。