Рецепт №66. Из книги «128 рецептов php»
Перейти к оглавлению
При работе с текстовыми файлами, может возникнуть необходимость в удалении строк. Следующий рецепт поможет это реализовать. В примере приведена пользовательская функция, которая принимает два параметра. Первый – путь до файла, а второй – номер строки, которую необходимо удалить.
Пример:
// пример использования функции удаления сроки $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, она позволяет выводить пользовательские ошибки, предупреждения и уведомления. Что очень удобно при написании пользовательских функций, которые в ходе выполнения могут вернуть ошибку, например, при обращении к несуществующему файлу.