Home > Backend Development > PHP Tutorial > 如何从参数文件中读取内容并替换变量值

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

WBOY
Release: 2016-06-23 13:35:40
Original
945 people have browsed it

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;
Copy after login
一般
富裕
贫穷
中国
德国
葡萄牙

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

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

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template