user3143218
user3143218

Reputation: 1816

Write to file using SplFileObject()

I'm trying to edit a file by line using SplFileObject(). I can choose the line of the file I want to edit. But how do I then write a $string to that line?

Here is my code to get the line:

<?php
$file = new SplFileObject('myfile.txt');
$file->seek(9999);     // Seek to line no. 10,000
echo $file->current(); // Print contents of that line
?>

How do I insert a string on that line?

Note, I don't want to overwrite the file, I simply want to insert a $string at a given line.

Upvotes: 4

Views: 4459

Answers (1)

Jay Bhatt
Jay Bhatt

Reputation: 5651

This isn't probably the best solution as it will read the whole file and store it in a string. But since there are no other answers you can use this as your last resource.

$ouput = '';
$file = new SplFileObject("your_file.xxx", 'r');
while (!$file->eof()) {
    $line = $file->fgets();
    if($line == 'your_condition'){
       $line = 'replace this line';
    }
    $output .= $line;
}
$file = null;

$file = new SplFileObject("your_file.xxx", 'w+');
$file->fwrite($output);

Upvotes: 2

Related Questions