Здравствуйте! Подскажите, как я могу удалить из файла все строки, которые начинаются с определенной последовательности символов?
Вот такой файл для примера:
t9.73 20170809
t4.34 20170614
t9.87 20160101
t4.34 20170907
Была мысль - с помощью file() читать файл и записывать содержимое в массив, затем с помощью функции strspn() проверять каждый элемент массива на наличие указанной строки, и если строки нет, то записывать этот элемент в новый массив, затем преобразовать новый массив в строку с помощью функции implode();
// записываем содержимое файла в массив
$file = file("file.txt");
// создаем новый пустой массив
// для нового содержимого файла
$newcontent = [];
foreach ($file as $string) {
//проверяем длину участка строки,
// содержащего нужные символы
$count = strspn($string , "t4.34");
//если этого участка нет, записываем элемент массива в новый массив
if ($count===0) {
$newcontent[] = $string;
}
}
//преобразуем массив с новым содержимым в строку
$newfile = implode($newcontent ,PHP_EOL);
Можно ли это сделать проще?