как добавить строку в конкретную строку файла [закрыто]

мой код,

<?php 

$data = file_get_contents('file.conf');
$rows = explode("\n", $data);
$rcount = count($rows); 
echo $rcount;
for ($l=0; $l<$rcount; $l++)
{
    $rowss = $rows[$l];
    if ($rowss == "[default]")
    {
        file_put_contents($rowss, "\nhi", FILE_APPEND | LOCK_EX) or die("<br>oops");
    }
}


?>

вывод,

52
oops

и мой файл (file.conf) содержит 52 строки, которые печатаются успешно, , но не могу записать в этот файл

мне нужно добавить строку вроде «привет» в конец строки «[по умолчанию]»

пример, мой файл -

eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM



[default]

1234 => 4242,Example Mailbox,root@localhost
;4200 => 9855,Mark Spencer,markster@linux-    support.net,mypager@digium.com,attach=no|serveremail=myaddy@digium.com|tz=central|maxmsg=    10
;4300 => 3456,Ben Rigas,ben@american-computer.net
;4310 => -5432,Sales,sales@marko.net

пожалуйста, помогите мне

поблагодарите u

-1
задан 9 May 2014 в 16:11

1 ответ

Давайте предположим, что Вы хотите добавить 2 строки после строки 20.

Можно использовать array_splice:

$newlines = [ 'first line', 'second line' ];
array_splice($rows, 20, 0, $newlines);

$newlines массив может содержать столько строк, сколько Вы хотите добавить. Можно также просто добавить одну строку, но это должно быть в массиве так, чтобы array_splice может использовать его.

Таким образом в Вашем примере Вы могли использовать:

if ($rowss == "[default]")
{
    $newlines = [ 'first line', 'second line' ];
    array_splice($rows, $l + 1, 0, $newlines);
}

Это получит строку с [default], и добавьте строки после него ($l + 1 текущая строка, содержа [default]).

1
ответ дан 7 October 2019 в 20:54

Другие вопросы по тегам:

Похожие вопросы: