1

我想从文件的开头删除前 23 行并将它们替换为包含 10 行的字符串,例如

$newstring = "line1
2
3
4
5
6
7
8
9
10";

最简单的方法是什么?我一直在玩fwrite,但我肯定做错了什么。

4

1 回答 1

1
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;

}
于 2012-08-11T15:16:36.150 回答