我在php中配置了一些带有一些值的配置文件,为了提取这个值,我使用了一个方法,我的问题是关于它是否可以通过其他方式用PHP做到这一点
在PHP文件内部config_test.dat我有这个
<?php
$opt[v1]="house 1";
$opt[v2]="house 2";
$opt[v3]="house 3";
$opt[v4]="house 4";
$opt[v5]="house 5";
?>
<?php
$fil=file_get_contents("config_test.dat");
$arra_rep_1=array("<?php","?>");
$arra_rep_2=array("","");
$fil_end=str_replace($arra_rep_1,$arra_rep_2,$fil);
$fil_end_exp=explode("\n",$fil_end);
for ($i=1;$i<count($fil_end_exp)-1;$i++)
{
$exp=explode("=","".$fil_end_exp[$i]."");
$exp2=explode("[","".$exp[0]."");
$exp3=explode(";",$exp[1]);
echo substr($exp2[1],0,-1);
print "---";
echo str_replace('"','',$exp3[0]);
print "<br>";
}
?>
脚本结果
v1---house 1
v2---house 2
v3---house 3
v4---house 4
v5---house 5
最后我说得好,但我认为编写一个脚本更容易提取数据,这可能吗?
答案 0 :(得分:1)
您只需包含该文件并使用该数组:
<?php
$opt[v1]="house 1";
$opt[v2]="house 2";
$opt[v3]="house 3";
$opt[v4]="house 4";
$opt[v5]="house 5";
?>
<?php
include_once('config_test.php');
foreach ($opt as $key => $value) {
echo $key . '-' . $value;
}
?>
答案 1 :(得分:0)
我假设你不知道数组名$opt
。这是解释您为什么不在foreach
数组中包含配置和$opt
的唯一方法:
foreach(get_config() as $key => $value) {
echo "{$key}---{$value}";
}
function get_config() {
include('config_test.dat');
return get_defined_vars();
}
答案 2 :(得分:0)
config_test.dat是无效的php文件, 所以也许使用正则表达式来解析它,这是个好主意:
<?php
$data=file_get_contents("config_test.dat");
preg_match_all('/\$opt\[([^\]]+)\]="([^"]+)";/',$data, $out);
$res = array_combine($out[1], $out[2]);
print_r($res);