如何删除每行文本文件的最后两个字符

时间:2014-07-27 12:04:34

标签: php

如何删除文本文件每行的最后两个字符? 例如。 a.txt包含:

10081551
10081599
10082234
10082259
20081134

所以新的txt文件包含:

100815
100815
100822
100822
200811
谢谢你:)

3 个答案:

答案 0 :(得分:3)

$content = file("long.txt");
$fp = fopen('short.txt', 'w');
foreach($content as $row)
{
    $shortened =  substr(trim($row) ,0,-2);
    fwrite($fp, $shortened."\n");
}
fclose($fp);

答案 1 :(得分:1)

$data = file("myfile.txt", FILE_IGNORE_NEW_LINES);
array_walk(
    $data,
    function(&$value) {
        $value = substr($value, 0, -2);
    }
);
file_put_contents("myfile.txt", implode(PHP_EOL, $data));

修改

file()调用将文件加载到array,其中FILE_IGNORE_NEW_LINES标记从每行中删除任何return个字符,并将其分配给$ data;然后,array_walk()依次循环遍历该数组的每个元素(文件的每一行),使用回调函数删除每行的最后两个字符。最后,imploding数组返回一个长字符串(重新插入每个元素的新行字符),然后使用file_put_contents

将其写回文件

答案 2 :(得分:0)

你可以读取文件,将字符串转换为数组,然后删除数组中每个元素的最后2个字符,最后用新值重写文件

   $file = file_get_contents("file.txt");
   $lines = explode("\r\n", $file);
   foreach ($lines as $index => $line)
      $lines[$index] = substr($line, 0 , strlen($line)-2);
   file_put_contents("file.txt",implode("\r\n",$lines));