Как удалить часть файла?!

chiffa

Guest
Как удалить часть файла?!

Всем привет! Люди у меня такой вопросик: как можно удалить часть данных из файла. К премеру, у меня есть файл 1.txt, который содержит
asfafasfsfsfsffsfsfsff256844
1425
521hgldhgghdgdgk
dgdgdgdgdgddfrefdfef


Как мне из него удалить

256844
1425
521

Тоесть мне надо удалить нечколько строчек в середине файла!
Зарание спасибо за ответ!
 

Linker

Guest
1425 - это "строчка"

256844 - это часть "строчки"

так что нужно удалять? цифры?
 

chiffa

Guest
Linker, нет не цифры, я просто так к примеру. У меня идёт част кода (цифры и буквы) его и надо удалить!
 

Linker

Guest
chiffa

Ну и как же эту "часть кода" можно назвать? :)
 

гоша

Guest
chiffa

слушай сюда.

1) прочитать файл в массив
-- http://www.php.net/manual/ru/ref.filesystem.php

2) удалить кусок массива
-- http://www.php.net/manual/ru/ref.array.php

3) склеить массив в одну строчку
-- http://www.php.net/manual/ru/ref.strings.php

4) открыть файл на запись и записать эту строчку в него
-- http://www.php.net/manual/ru/ref.filesystem.php

Нужные функции постарайся всё-таки поискать САМ.
Пожалуйста.
 

chiffa

Guest
Frol, это круто но я не занаю какие именно символы мне надо удалить!!!
гоша, спасибо за статьи буду читать, разбераться. Скажем так, а если мне надо удалить определённое количество строк, к примеру первые 4! Это тоже через масив лучьше мутить?
 

Linker

Guest
chiffa

лучше не "мутить", а наоборот - прояснить ситуацию :)

Всё содержимое файла - это и будет одна строка,
а если считать, к примеру, через file() - это будет массив из фрагментов этой строки разделённых символом \n

Что такое "первые 4" ? Четыре фрагмента разделённые символом \n ? Но тогда судя по примеру с цифрами - это не подходит.
Может всё-таки можно как-то сформулировать - что нужно искать в строке? Например теги: всё что между символом < и символом > или php-код: всё что между символами <? и ?>

Может я и не прав, но при чём здесь функции и ссылки на ман, если человек сам не знает, что он ищет и как это можно назвать (описать, сформулировать)?

chiffa: как можно искать ответ если даже не определена задача?
 

Frol

Новичок
Автор оригинала: chiffa
Frol, это круто но я не занаю какие именно символы мне надо удалить!!!
..
оооо, за**ись...
надо удалить то, не знаю что, подскажите как сделать

chiffa
то, что пример у тебя с вопросом не сходится -- это нормально?
 

Demiurg

Guest
chiffa
давай ты будешь вопрос ставить так, что бы было понятно, что ты хочешь. Сейчас ты ставишь вопрос так: "как мне удалить то, что мне не нужно?".
 

chiffa

Guest
Demiurg, мне надо удалить несколько строчек (к примеру 1-ую, 5-ую и 6ую). Надеюсь теперь понятно.
 

Фанат

oncle terrible
Команда форума
chiffa
запомни.
НИКАКОГО представления о строках файлы не имеют.
это логическое, виртуальное деление.
ты сам себе воображаешь, что в файле есть какие-то строки
операционная система этого не знает.

поэтому.
ты должен считать ВЕСЬ файл целиком.
удалить

какая из этих операций тебе непонятна?
если все, то будем учиться их делать по очереди
записать файл заново
 

chiffa

Guest
Фанат, ок это круто. Ладно считал файл целеком. Дальше, мне не понятно как "удалить" часть файла, который я вертуально определяю как 1-ую, 5-ую и 6-ую строки!
 

Фанат

oncle terrible
Команда форума
отлично, с чтением все ясно.
когда ты считал файл, то это уже не файл, а переменная.
я так понимаю, что считал ты с помощью file() в массив, где каждый элемент - это строка

то есть у нас уже не файл, а переменная, и не строки, а жлементы массива.

теперь надо удалить нужные элементы и записать массив обратно, правильно?
удалить сам можешь?
про индексы массива знаешь?
 

chiffa

Guest
удалить сам можешь?
про индексы массива знаешь?
Да ты абсолютно прав, считываю с помощью file(). Но к сожелению как удалить часть масива покач-то не знаю:( Если чесно у меня вообще что-то масивы не очень пошли:( :( :(
 

Фанат

oncle terrible
Команда форума
массив - это очень просто.
это типа списка.

1. Иванов.
2. Петров
3. Сидоров
4. Пупкин
5. Запупкин.

вот если у теб на листе список такой - ты едь можешь зачеркнуть третий элемент?
и с массивом так же.
только в массивах элементы нумеруются с нуля.

чтобы удалить 1-й, надо написать
unset($massiv[0]);
и такдлявсех строк, которые хочешь удалить, не забывая отнимать от номера единичку

понятно?
для контроля выведи массив на экран, таким кодом
foreach ($massiv as $key => $value) echo $key." - ".$value."<br>";

это только дляконтроля, чтобы убедиться что ты все правильно удалил
если все ок, будем записываь
 

chiffa

Guest
Фанат, огромное спасибл!!! Тоесть как я понял каждая строка это будет отдельный елемент масива, при этом нумерация первого начинаеться с 0. Я правильно понял?
 

Фанат

oncle terrible
Команда форума
правильно.
вот, оказыывается, ка полезно понимать, как что устроено.

дальше просто.
поскольку файл никаких массиво не понимает, то записывать в него надо не массив ,а переменную, так называемую, скалярную, "простую". содержущую не структуру, как массив, а просто сами данные, потоком.
поэтому записывать надо не $massiv, а $zapisat=implode("",$massiv);

-~{}~ 07.02.04 17:58:

я не знаю, как ему описать тип переменнолй string
может, кто возьмется?
 

Фанат

oncle terrible
Команда форума
набор символов - хорошо.
сбивает только с толку, что тип - "строка" и в файле - тоже строка
 
Сверху