如何删除文本文件每行的最后两个字符? 例如。 a.txt包含:
10081551
10081599
10082234
10082259
20081134
所以新的txt文件包含:
100815
100815
100822
100822
200811
谢谢你:)
答案 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));