Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: удаления\изменения определёной строки
Форумы портала PHP.SU » PHP » Программирование на PHP » удаления\изменения определёной строки

Страниц (2): [1] 2 »
 

1. OverNik - 04 Июля, 2009 - 19:49:56 - перейти к сообщению
photo.txt
Цитата:
ID IDalb Name text date view
|1 |2 |Я |это я |25.03 |5 |
|2 |2 |я Улыбка |и вот я|23.05 |1 |
|3 |1 |Саша |мой дрг|02.02 |6 |
|4 |1 |инна |Мой дру|01.06 |9 |
|5 |3 |КОт |Мой кот|03.06 |0 |
|================================|


Мне нужно удалить\изменить строку с файла photo.txt, только не обычным методом.
Удалить только ту строку где $id = 5, или $name = инна, вот так.
Пожалуйста только не пишите чт $id=5 это пятая строка, возьми обычный скрипт и удали\измени имено пятую строку,
так же и с $name=inna что это 4 строка и просто нужно удалить\изменить строку №4, мне нужно научится
удалять\изменять строку с определеным текстом, или числом.
(Добавление)
что совсем не кто не сталкивался? Ниндзя
2. maxtet - 04 Июля, 2009 - 20:32:33 - перейти к сообщению
Так это у тебя таблица или текстовый файл?
3. Ch_chov - 04 Июля, 2009 - 20:36:24 - перейти к сообщению
Ты пытаешься создать некое подобие базы данных на текстовых файлах.
Имхо, если у тебя нет возможности или желания использовать SQL сервер, попробуй SQLite. Будет на много проще осуществлять доступ к данным.
4. JustUserR - 04 Июля, 2009 - 21:03:47 - перейти к сообщению
OverNik Да Ch_chov прав что не надо изобретать велосипед
Но всетаки по делу - самый простой способ это берем и считываем по строке (предполагается что | и \n это разделители и в тексте они не встречаются - если это не так то текст надо закодировать или удалит из нео эти символы) Потом мы считываем по строке из файла и с помощью explode разрезаем ее и смотрим ID и если он совал с нужным нам то заоминаем номер строки и удаляем уже некоторую строку
5. OverNik - 04 Июля, 2009 - 21:13:31 - перейти к сообщению
парни в sql это все просто , достаточно поставить условия WHARE id=1 или WHARE name=инна.
Вот в том и пробла что нуно в файлах Нахмурился
(Добавление)
maxtet пишет:
Так это у тебя таблица или текстовый файл?

файл
6. Burevestnik - 05 Июля, 2009 - 10:18:39 - перейти к сообщению
OverNik пишет:
поставить условия WHARE id=1 или WHARE name=инна.


скорее Where, а не WHARE.
7. JustUserR - 05 Июля, 2009 - 15:16:23 - перейти к сообщению
OverNik
JustUserR пишет:
Самый простой способ это берем и считываем по строке (предполагается что | и \n это разделители и в тексте они не встречаются - если это не так то текст надо закодировать или удалит из нео эти символы) Потом мы считываем по строке из файла и с помощью explode разрезаем ее и смотрим ID и если он совал с нужным нам то заоминаем номер строки и удаляем уже некоторую строку
8. valenok - 05 Июля, 2009 - 15:39:16 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?
  2. $file = file('a.dat');
  3. $c = count($file);
  4.  
  5. for($i = 0; $i < $c; $i++)
  6. {
  7.   $row = explode('|',$file[$i]);
  8.   if($row[1] == 5 || $row[2]=='инна') unset($file[$i]);
  9. }
  10.  
  11. fputs(fopen('a.dat','w+'),implode("\r\n",$file));
9. JustUserR - 05 Июля, 2009 - 18:11:31 - перейти к сообщению
valenok А если этот файл несколько десятков или сотен мегабайт - грузить его в память нерационально
Уж лучше найти сначала нужную строку для удаления потом запомнить ее номер и потом уже с омощью пстрочного сдвига удалять
10. valenok - 05 Июля, 2009 - 19:01:35 - перейти к сообщению
А если на орбитальной станции Genesis II отключат электричество ?
А если этот файл 215 байт ? Загрузить им процессор не рационально.
11. OverNik - 06 Июля, 2009 - 02:29:17 - перейти к сообщению
Непонимаю, почему с файлами ак тяжело роботать?
Что бы создать алгоритм который в MySql пишется одной строкой нужно потратить как минимум три перекура. Не понял
С вопросом розобрался.
Загнал все масив, нашел нужное слово, высчитал строку где находится это слово, и обычным методом замены строки удалил\изменил её.
Всем спасибо что потратили время.
Просто есть CMS на файлах. И модуля к ней как бы нужно делать так же на файлах, хотя на Mysql модуль тоже мона подключить. Вот и думал что и как. С файлами связался впервые, так как до этого пользивался только мусколом! Подмигивание
12. IOpeH - 06 Июля, 2009 - 02:43:25 - перейти к сообщению
OverNik, только не забывайте что если в один момент времени выполнить ваш скрипт, не блокируя (flock) файл, то файл может запоганится, но даже и flock не дает 100% гарантии отсутствия трабл... там вроде как от файловой системы многое зависит...

хе хе ложка дегтя на последок )))
13. JustUserR - 06 Июля, 2009 - 13:56:26 - перейти к сообщению
Цитата:
Только не забывайте что если в один момент времени выполнить ваш скрипт
Именно поэтому в базах данных придумали транзакции Улыбка
14. OverNik - 06 Июля, 2009 - 17:19:31 - перейти к сообщению
JustUserR пишет:
Именно поэтому в базах данных придумали транзакции

Это что такое? Какое то предохранения против обнуления файлов?
15. Stierus - 06 Июля, 2009 - 17:50:10 - перейти к сообщению
к вопросу о том, как хранить информацию в файлах - посмотри Serialize() - возможно, сэкономит тебе много времени в будущем Улыбка

 

Powered by ExBB FM 1.0 RC1