Как я могу удалить строку и добавить другие новые строки, используя стертый как указатель в файле с php? - PullRequest
0 голосов
/ 14 февраля 2019

У меня вопрос, как я могу указать на строку в соответствии с ее содержимым, в этом случае будет "; *" удалить эту строку и где эта строка продолжала писать

Вводимый текст:

[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 +":

[SIP34]
include => portabilidad

[SIP85]
include => portabilidad

;*

[new]
include => portabilidad

;*

[SIP51]
include => portabilidad

1 Ответ

0 голосов
/ 14 февраля 2019

Легче читать, заменять и писать:

$new  = '[new]'.PHP_EOL.'include => portabilidad'.PHP_EOL.';*';
$file = 'C:\archivos\extensions.conf';
file_put_contents($file, str_replace(';*', $new, file_get_contents($file)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...