我的代码是,
<?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 行,已成功打印,但无法在该文件上写入
我需要在“[default]”行末尾添加一些字符串,如“hi”
例如,我的文件是
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,[email protected],attach=no|[email protected]|tz=central|maxmsg= 10
;4300 => 3456,Ben Rigas,[email protected]
;4310 => -5432,Sales,[email protected]
请帮助我
感谢你
答案1
假设您想在第 20 行后添加 2 行。
您可以使用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]
)。