config — Поиск строки и удаление всей строки, связанной со строкой в ​​переполнении стека

Мне нужно найти строку в файле .cfg и удалить всю строку. Я использую file_get_contents чтобы получить данные в файле .cfg, и я храню их в переменной, поиск — это хорошо, но вы не знаете, как удалить всю строку?

У меня есть строка следующим образом:

пользователь $username небезопасный-пароль $password

Я хочу искать $username и удалите всю строку.

-2

Решение

Используйте небольшое регулярное выражение, чтобы соответствовать строке:

<?php

$file = 'blah
etc
user delboy1978uk insecure-password 123456
etc
etc';

$regex = '#\nuser\s\w+\sinsecure-password\s.+\n#';
preg_match($regex, $file, $matches);
$file = str_replace($matches[0], "\n", $file);

echo $file;

Какие выводы:

blah
etc
etc
etc

Смотрите это здесь: https://3v4l.org/BcDWK

0

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

С помощью этого метода вы можете прочитать каждую строку конфигурационного файла путем поиска строки в каждой строке.

$h = fopen('yourfile', 'r') ;
$match = 'username' ;

$output = [] ;

if ($h) {
while (!feof($h)) {
$line = fgets($h);

//your current search function, which search each line
if ( your_search_function($line, $match) === false) {
//array $output will not contain matching lines.
$output[] = $line;
}
}
fclose($h);

//write back to file or do something else with $output
$hw = fopen('yourfile', 'w') ;
if( $hw ) {
foreach( $output as $line ) {
fputs($hw, $line) ;
}
fclose($hw) ;
}
}
0

По вопросам рекламы ammmcru@yandex.ru