如何使用PHP编辑此文本文件?

时间:2011-01-12 12:32:06

标签: php

我的文本文件中包含大约400k的数据。它的内容是这样的..

1,james
2,mathew
3,yancy
4,brandon
5,molner
6,nick
7,neil...and so on

如何从此文本文件中删除数字和逗号并仅保留名称?

4 个答案:

答案 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