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

php中文网
发布: 2016-06-23 13:35:40
原创
1154人浏览过

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开头的变量都替换成国家名字?

小绿鲸英文文献阅读器
小绿鲸英文文献阅读器

英文文献阅读器,专注提高SCI阅读效率

小绿鲸英文文献阅读器 199
查看详情 小绿鲸英文文献阅读器

回复讨论(解决方案)

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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号