当前位置:Gxlcms > PHP教程 > 如何从参数文件中读取内容并替换变量值

如何从参数文件中读取内容并替换变量值

时间:2021-07-01 10:21:17 帮助过:25人阅读

A.TXT内容如下
01:富裕
02:一般
03:贫穷

C.TXT内容如下
01:中国
02:美国
03:德国
04:法国
05:葡萄牙

php文件中
$a1=02
$a2=01
$a3=03

$c1=01
$c2=03
$c3=05


请问如何将a开头的变量都替换成A.TXT中的富裕程度,将c开头的变量都替换成国家名字?


回复讨论(解决方案)

file_get_contents函数读取txt内容
首先explode("\r\n", $txt)分行
遍历上一步结果,再用explode拆冒号
得到一个数组:array('01' => '富裕', '02' => '一般')
剩下就好办了

这个思路我考虑过,给这么多分的原因是想要一个很优化的方案,因为配置文件多且大,每个变量要遍历一遍,速度很慢。

$a1 = '02';$a2 = '01';$a3 = '03';$c1 = '01';$c2 = '03';$c3 = '05';$na = 'a';parse_str(str_replace(array(':', PHP_EOL), array('=', '&'), file_get_contents("data/$na.txt")), $ar);foreach(preg_grep("/^$na\d+/", array_keys(get_defined_vars())) as $v) {  $$v = $ar[$$v];}$na = 'c';parse_str(str_replace(array(':', PHP_EOL), array('=', '&'), file_get_contents("data/$na.txt")), $ar);foreach(preg_grep("/^$na\d+/", array_keys(get_defined_vars())) as $v) {  $$v = $ar[$$v];}echo $a1, PHP_EOL;echo $a2, PHP_EOL;echo $a3, PHP_EOL;echo $c1, PHP_EOL;echo $c2, PHP_EOL;echo $c3, PHP_EOL;
一般
富裕
贫穷
中国
德国
葡萄牙

你的方案就是错的,不可能获得良好的性能

想要优化?
将txt中的原格式转换到易用的php数组后,用内置的序列化函数生成字符串再保存回去
这样后面省去了解析的过程
但这个东西重点在于大文件的IO上,要么换mysql,要么用memcache

人气教程排行