Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как удалить из текст файла определенные строки - Помогите новичку
 
 автор: Fuel   (15.11.2008 в 09:21)   письмо автору
 
 

Никак не могу разобраться...

Вот есть несколько текстовых файлов. В каждом из них - несколько строчек, ненужных. Файлов очень много, поэтому вручную их удалять - тяжело. Какая функция отвечает за удаление строк из текстовых файлов?

Заранее спасибо. Совсем уже с толку сбился, ничего не получается.

  Ответить  
 
 автор: Valick   (15.11.2008 в 10:01)   письмо автору
1.9 Кб
 
   для: Fuel   (15.11.2008 в 09:21)
 

1 вариант
Считываете файл в массив.
Удаляете из массива ненужные строки
записывате массив в файл

2 вариант
делаете временную копию файла
очищаете изначальный файл
копируете из временной копии в изначальный файл только нужные строки
удаляете временную копию

Прикрепил архивчик, в вашем случае можно с блокировкой не заморачиваться, но на будущее пригодиться.

  Ответить  
 
 автор: Fuel   (15.11.2008 в 10:03)   письмо автору
 
   для: Valick   (15.11.2008 в 10:01)
 

Спасибо!

Но как удалить из массива ненужные строки - они ведь в разных местах в каждом файле находятся.

  Ответить  
 
 автор: Valick   (15.11.2008 в 10:05)   письмо автору
 
   для: Fuel   (15.11.2008 в 10:03)
 

они ведь в разных местах в каждом файле находятся

Ну и что? строки то одинаковые надеюсь)))
Просто обходите массив циклом foreach, ловите "рыбу" (т.е. удаляемую строку) и делаете унсет по ключу массива.

<?php
foreach($mass as $key=>$value)
{
if(
$value=="удаляемая строка") unset($mass[$key]);
}
?>

далее тем же foreach запихиваете массив обратно в файл (естественно открыв его для записи и предварительно очистив), "и танки наши быстры"))

P.S. но мне кажется второй вариант более предпочтительнее, там ненадо будет хранить весь файл в оперативной памяти, а просто копировать построчно из одного файла в другой. Хотя быстродействие снизится. Вобщем всё зависит от величины файла....

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования