fopen — PHP Как записать в определенную строку в файле?

Мне нужно написать в определенную строку в файле без очистки кода php.

$file="variables.php";
$linecount = 0;
$handle = fopen($file, "r");
while(!feof($handle)){
$line = fgets($handle);
$linecount++;
}

$linecount=$linecount-1;
echo $linecount;

fclose($handle);$handle = fopen($file, "a+");
fwrite($handle, "$newvar=null". "\n");

1

Решение

Ты можешь использовать file чтобы прочитать содержимое файла в массив (с номерами строк) и просто изменить строки. Например;

<?php

/**
* File contents before
Line 1
Line 2
Line 3
*/

$file = "variables.php";
$content = file($file); //Read the file into an array. Line number => line content
foreach($content as $lineNumber => &$lineContent) { //Loop through the array (the "lines")
if($lineNumber == 2) { //Remember we start at line 0.
$lineContent .= "Hello World" . PHP_EOL; //Modify the line. (We're adding another line by using PHP_EOL)
}
}

$allContent = implode("", $content); //Put the array back into one string
file_put_contents($file, $allContent); //Overwrite the file with the new content

/**
* File contents after
Line 1
Line 2
Line 3
Hello World
*/
3

Другие решения

Может быть, что-то вроде следующего?

$file="variables.php";
$linecount = 0;
$currentData = "";
$handle = fopen($file, "r");
while(!feof($handle)){
$line = fgets($handle);
$linecount++;
$currentData .= $line."\n";
}

$linecount=$linecount-1;
echo $linecount;

fclose($handle);$handle = fopen($file, "w+");
fwrite($handle, $currentData."$newvar=null". "\n");
0

По вопросам рекламы [email protected]