用包含10行php的字符串替换前23行文件

时间:2012-08-11 15:11:05

标签: php file replace fwrite

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

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

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

1 个答案:

答案 0 :(得分: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;

}