Войти

Показать полную графическую версию : Вопрос по PHP (fwrite)


tolik777
22-05-2004, 22:35
Передо мной стала такая задача:
есть файл test.txt в котором содержаться данные:
1^test1^email
3^test2^email
6^test6^email
Мне надо сделать программку, которая считывает эти данные и если первое число в строке(пусть будет 3) совпадает с заданным, то прога делает определенные действия и удаляет строчку. Т.е. как удалить только 3-юю строчку?
ЯЯ вот накидал тут, но не знаю как на PHP удалить именно определенную строчку.
If ($ar[0] == $order_id) {  
  $imail = $ar[2];
  fwrite($file,"");  //Как быть здесь?

Guest
23-05-2004, 01:32
Я бы на твоём месте считал весь файл в массив, потом по условию удалил ненужные элементы и записал массив заново в файл.

Vlad Drakula
23-05-2004, 19:57
tolik777
сделай как предложил Guest, это единственное решение, т.к. файл это поток!

Pawel gor
04-06-2004, 14:22
tolik777
Я тебя понял, что тебе нужно просто удалить строку из  файла, в которой первый символ какойто определенный? Могу подкинуть идею, котора работает даже если файл нельзя запихнуть в масив.
    Начнем с того что есть функция fgets, которая читает строку.
Если написать:
while (not eof($f)){
 $st=fgets($);

.......

}

то ты почтешьфайл по строчкам. Дадее условие: если первый символ не равен чему там тебе надо, то переписать строку в другой файл. Таким образом во втором файле не будет не нужной строки. Потом после закрытия файла, старый файл удаляешь, а новый переименовываешь в старый (для этого еспользуй rename(old name, new name)  ).  Ну и первый символ строки возвращает команда substr($st,0,1)  если не ошибаюсь.
Если не получиться то код подганю!




© OSzone.net 2001-2012