我想从文件的开头删除前 23 行并将它们替换为包含 10 行的字符串,例如
$newstring = "line1
2
3
4
5
6
7
8
9
10";
最简单的方法是什么?我一直在玩fwrite
,但我肯定做错了什么。
replace_first_lines_in_file('path/to/file.txt', 23, $new_string);
function replace_first_lines_in_file( $file_path, $num_lines, $new_string )
{
$file = file_get_contents($file_path);
if( ! $file )
return false;
$pattern = '#^([^\n]*\n){' . $num_lines . '}#si';
$new_file = preg_replace($pattern, $newstring, $file);
if( ! file_put_contents($file_path, $new_file) )
return false;
return true;
}