如何在php文件中删除一行并添加其他新行?

如何在php文件中删除一行并添加其他新行?,php,file,Php,File,我的问题是如何根据内容指向一行,在这种情况下,将“*”删除这行,这行在哪里继续书写 输入文本: [SIP34] include => portabilidad [SIP85] include => portabilidad ;* [SIP51] include => portabilidad 这是我在文件末尾添加的代码: $file = fopen('C:\archivos\extensions.conf', 'a+'); while(!feof($file)) {

我的问题是如何根据内容指向一行,在这种情况下,将“*”删除这行,这行在哪里继续书写

输入文本:

[SIP34]
include => portabilidad

[SIP85]
include => portabilidad

;*

[SIP51]
include => portabilidad
这是我在文件末尾添加的代码:

$file = fopen('C:\archivos\extensions.conf', 'a+');
while(!feof($file)) {
  $line = fgets($file);
  if (stristr($line ,';*')) {
    fwrite($file,  PHP_EOL.'[new]'.PHP_EOL);
    fwrite($file, 'include => portabilidad'.PHP_EOL);
    fwrite($file,  PHP_EOL.';*'.PHP_EOL);
  }
}
fclose($file);
使用我的代码输出文本:

[SIP34]
include => portabilidad

[SIP85]
include => portabilidad

;*

[SIP51]
include => portabilidad

[new]
include => portabilidad

;*
预期产出:

[SIP34]
include => portabilidad

[SIP85]
include => portabilidad

[new]
include => portabilidad

;*

[SIP51]
include => portabilidad
将其删除“*”,并替换为“[新]”,然后继续写入并放置相应的标记,以便能够继续添加

输出为“r+”:


易于阅读、替换和写入:

$new  = '[new]'.PHP_EOL.'include => portabilidad'.PHP_EOL.';*';
$file = 'C:\archivos\extensions.conf';
file_put_contents($file, str_replace(';*', $new, file_get_contents($file)));

易于阅读、替换和写入:

$new  = '[new]'.PHP_EOL.'include => portabilidad'.PHP_EOL.';*';
$file = 'C:\archivos\extensions.conf';
file_put_contents($file, str_replace(';*', $new, file_get_contents($file)));

a+。。。在这种模式下,fseek()只影响读取位置,写入内容总是被追加。
从Try
r+
开始。它起作用,但根本不起作用,我如何才能消除“*”剩余内容,现在我有两个“*”一个在那里,而你正在写另一个…用r+
a+的结果更新帖子。。。在这种模式下,fseek()只影响阅读位置,写的内容总是附加的。
从Try
r+
开始。它起作用,但根本不起作用,我如何才能消除“*”剩下的两个“*”;*“一个在那里,你在写另一个……用r+sry的结果更新帖子,我是专注的,我是专注的