从外部javascript文件读取var并将其转换为php变量
我有一个javascript文件(我们称之为external.js),位于我服务器上的某个位置,包含以下内容:从外部javascript文件读取var并将其转换为php变量,javascript,php,Javascript,Php,我有一个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": { "rat
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代码
我试着读取文件的一部分,一个一个地提取每个变量值,但这显然是不实际的
<?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\u 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;
}
}
它可以用来创建如下变量:KEY\u identifier
,意思是USD\u transfer
…等等
允许您这样调用变量:
echo $USD_transfer;
另外,请注意:
您的
JSON
对象不是有效的对象,您可以在处检查它是否正确。这是JSON。使用。这很有趣。为什么要从PHP读取JS文件?无论如何,您可以将其转换为JSON,然后像@johncode建议的那样使用JSON\u decode()
?不是JSON,而是几乎。在将文件提供给json_decode之前,需要裁剪文件以将其转换为有效的json;var_dump(json_decode($json));var_dump(json_decode($json,true));但我得到一个错误,你的文件是javascript,不是json。Se:比如说。无论如何,这不是一个好的做法,你应该找到一个更普遍的解决办法,你的问题。例如,Javascript和PHP可以轻松读取的内容。谢谢,这正是我需要的,我刚刚添加了:$file=file_get_contents('external.js')$string=str_replace(“var exchange=”,“”,“$file”);一开始,但现在由于一些奇怪的原因,输出只是一个未格式化的数组。你需要json\u decode()
它,然后按照我在回答中所说的做。谢谢,你的解决方案工作得很好,这是我输入错误的愚蠢错误。他不需要AJAX。该文件已与变量一起存储在他的服务器中。