今天php面试的笔试题,没有大量数据处理的经验,一脸懵逼,请教大家这几题的思路
问1:在500万数据中把 备注字段包含'测试'的记录筛选出来,保存在:output.txt文件中。
问2:格式化前10万条数据,后缀输出成ID.jpg:1,http://www.test.com/1.jpg ,测试数据1,保存在output2.txt中
今天php面试的笔试题,没有大量数据处理的经验,一脸懵逼,请教大家这几题的思路
问1:在500万数据中把 备注字段包含'测试'的记录筛选出来,保存在:output.txt文件中。
问2:格式化前10万条数据,后缀输出成ID.jpg:1,http://www.test.com/1.jpg ,测试数据1,保存在output2.txt中
题主可能要注意下,面试是偏重于代码解决还是其它方式。如果是代码解决,可以参考这边文章:https://segmentfault.com/a/11...,着重介绍了 PHP 对超大文件的读取。如果可以用其它方式,可以用 awk 编码解决。
给你第一题的答案:
$f = fopen('body.txt', 'r');
$f2 = fopen('output.txt', 'w');
while (!feof($f)) {
$line = fgets($f);
if (mb_stripos($line, '测试') !== false) {
fwrite($f2, $line . "\n");
}
}
第二题可以在第一题的基础上,加上计数,到10W条截止,每读一条逗号切分,解析第二个URL即可。
如果这么简单的题目都答不出来,你面试结果堪忧啊。
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答788 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答697 阅读✓ 已解决
逐行读取+正则提取或替换
有什么问题呢?