Удаление строки из файла

При работе с текстовыми файлами, может возникнуть необходимость в удалении строк. Следующий рецепт поможет это реализовать. В примере приведена пользовательская функция, которая принимает два параметра. Первый – путь до файла, а второй – номер строки, которую необходимо удалить.

Пример:
// пример использования функции удаления сроки 
$result = delStringByNum('/files/test.txt', 3); 
var_dump($result); 
 
/** 
* Функция для удаления строки из файла 
* 
* @param string $fileName - расположение файла 
* @param string $num - номер строки,  
* которую нужно удалить 
*/ 
function delStringByNum($fileName, $num){ 
  // Открываем файл 
  $file = @file($fileName); 
  // если файл не найден, выводим ошибку 
  if(!$file){ 
    trigger_error("File '$fileName' not found!"); 
    return false; 
  } 
  // если номер строки не корректный, сообщим об этом 
  if(!isset($file[$num-1])){ 
    trigger_error(" 
Incorrect number string: ($num) 
"); 
    return false; 
  } 
  // удаляем строку 
  $num = intval($num)-1; 
  unset($file[$num]); 
  // открываем файл для записи 
  $fileOpen = @fopen($fileName,"w");  
  // если файл невозможно редактировать,  
// сообщаем об этом 
  if(!$file){ 
    trigger_error(" 
File '$fileName' is not writable! 
"); 
    return false; 
  } 
  // перезаписываем файл 
  fputs($fileOpen, implode("", $file));  
  fclose($fileOpen); 
  return true; 
}


В приведенном примере использовалась, ранее не описываемая, php функция - trigger_error, она позволяет выводить пользовательские ошибки, предупреждения и уведомления. Что очень удобно при написании пользовательских функций, которые в ходе выполнения могут вернуть ошибку, например, при обращении к несуществующему файлу.
Теги:
trigger_error
Добавлено: 30 Марта 2018 06:40:57 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...