请问如何将批量存储在 TXT 文本中的照片信息批量导出,并将导出的照片信息命名为对应人员的证件号码?

2015-10-24 19:21:40 +08:00
 kkk414
因工作需要,现在要处理大量人员数据。
而数据源全是 TXT 文本保存,内容有个人身份信息和头像照片。
现在需要需要将 TXT 中的照片批量导出,并命名为对应人员的身份证号码。

不知道有无相关处理经验高手不吝赐教

测试源 TXT : http://pan.baidu.com/s/1kTrQYUj
4177 次点击
所在节点    问与答
29 条回复
abelyao
2015-10-24 23:15:16 +08:00
@loading 就怕数据是从哪里弄来的… 毕竟 demo 都没有打码,原名及身份证信息都…
kkk414
2015-10-25 00:32:48 +08:00
@abelyao 数据来源是本地人行的核查数据,跟 @orzfly 提的内容毫不相关(人家的是考试系统练手的), @abelyao @icedx @loading 多想了,如果真如你们所疑,有通过非正途获得数据的技能,又何愁要来此请大家教? 大家心里有点想法也是正常的,还是要谢谢各位关注。
sualwu
2015-10-25 09:59:03 +08:00
Linux 下, 一行命令就可以了:
awk '{if(NF == 3){filename=substr($2,1,18);sub(/^00/,"",$3);system("echo "$3"|base64 -d >"filename)}}' 10355.TXT

kkk414
2015-10-25 11:26:45 +08:00
@sualwu 谢谢提供参考方案,请问如何批量处理多个 TXT 文档? 另外这种方案只能在 Linux 下实现吗?楼上也有 @gdtv 红领巾 V 友写了 PHP 可惜我是个门外汉,再次谢谢他
horsley
2015-10-25 13:40:40 +08:00
门外汉的话,还是花点钱吧,有钱,给你做批量处理 做独立运行 exe 都不是问题
kkk414
2015-10-25 14:59:25 +08:00
@horsley 有钱能使人推磨吗?
感觉 V 友中也有不乏红领巾,交流和买卖是两码事。祝你工作顺利
kkk414
2015-10-26 15:08:15 +08:00
@gdtv 按你的方案已经单个文件成功导出了,但是多个 TXY 批量的导出只能到 7 千多张,请教一下

Fatal error: Maximum execution time of 60 seconds exceeded in D:\1.php on line 12
gdtv
2015-10-26 16:03:17 +08:00
@kkk414 改了一下,你再试试

<?php
header('Content-Type: text/html; charset=gb2312');
$d = dir(dirname(__FILE__));
while(false !== ($v = $d->read())) {
if(strpos($v,'TXT')){
set_time_limit(120);
$file_str = file_get_contents($v);
$file_lines = explode("\r\n",$file_str);
foreach($file_lines as $file_line){
preg_match('/[\s]{10,}([\d]{18}[ⅩxX]{0,1}).*[\s]{5,}00(.*)$/',$file_line,$file_parts);
if($file_parts[1] && $file_parts[2]){
file_put_contents($file_parts[1].'.jpg', base64_decode($file_parts[2]));
}
}
}
}
echo 'ok';
kkk414
2015-10-26 19:01:59 +08:00
set_time_limit(120); 搜了下也可以通过修改 php.ini 设定是限。
OK 了 感谢 @gdtv 指点!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/230765

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX