我的文本文件中包含大约400k的数据。它的内容是这样的..
1,james
2,mathew
3,yancy
4,brandon
5,molner
6,nick
7,neil...and so on
如何从此文本文件中删除数字和逗号并仅保留名称?
答案 0 :(得分:2)
Read将文件放入数组中,其中每个数组项都是一行。 Walk通过数组,find第一个逗号,remove以及之前的所有内容。然后write再次退出。
// Warning! Brain-compiled code ahead.
$arr = file('myfile.txt');
foreach ( $arr as &$val )
$val = substr($val, strpos($val, ',') + 1);
file_put_contents('myoutfile.txt', implode(PHP_EOL, $arr));
注意 - 没有错误检查。如果一行没有逗号,或逗号是最后一个字符,则会出现混乱。
答案 1 :(得分:0)
400k并不是太多了,所以你应该放弃这个(测试过):
foreach (file($path) as $line)
print preg_replace("~^[0-9]+\,(.*)~", "$1", $line);
答案 2 :(得分:0)
这已经过测试,并将其作为列表返回,但如果您愿意,可以将其保存到数据库中:
$file_path='my_file.txt';
$file_handler = fopen($file_path, 'rt');
$doc = fread($file_handler, filesize($file_path)+1);
$rows = explode("\n", $doc);
$rows_array = array();
foreach ($rows as $row) {
$data = explode(",", $row);
$return_array[] = $data[1];
}
//print_r($return_array);
//you can save it to a db
echo '<ul>';
foreach($return_array as $value){
echo '<li>'.$value.'</li>';
}
echo '</ul>';
答案 3 :(得分:0)
这是一个执行工作的perl one liner:
perl -i.save -pe 's/^\d+,//' test.txt
原始文件将保存在test.txt.save