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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Удаление строки из файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Удаление строки из файла
Evgeniu
Отправлено: 28 Июля, 2012 - 11:36:28
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Доброго времени суток!
У меня такая проблема, не могу написать код который бы удалял определенную строку из файла.

<?php
$file2 = '1.txt';
$fp2 = fopen("$file2", "a");
for($i=0; $i < count($fp2); $i++)
{
if (preg_match("/Привет/i", $fp2[$i])) {
$un = unset($fp2[$i]);
}
$test2 = fwrite($fp2, $fp[$i]);
fclose($fp2);
}
?>
вот код который я писал.
 
 Top
Green
Отправлено: 28 Июля, 2012 - 11:46:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


Помог: 9 раз(а)




Evgeniu пишет:
$fp2 = fopen("$file2", "a");

Evgeniu пишет:
count($fp2);

Разве fopen() возвращает массив?

 
 Top
Evgeniu
Отправлено: 28 Июля, 2012 - 11:50:48
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Green
У меня пишет что на 12 строке ошибка
$un = unset($fp2[$i]);
 
 Top
Green
Отправлено: 28 Июля, 2012 - 11:51:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


Помог: 9 раз(а)




Evgeniu, Текст ошибки покажите.
 
 Top
Evgeniu
Отправлено: 28 Июля, 2012 - 11:52:57
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Green
Parse error: syntax error, unexpected T_UNSET in Z:\home\fail.php on line 12
 
 Top
Green
Отправлено: 28 Июля, 2012 - 11:55:17
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


Помог: 9 раз(а)




Evgeniu пишет:
$un = unset($fp2[$i]);

Замените на:
 
 Top
Evgeniu
Отправлено: 28 Июля, 2012 - 11:57:03
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Green
Теперь скрипт загрузился но в файле не удалилась строчка "Привет"
 
 Top
Green
Отправлено: 28 Июля, 2012 - 12:02:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


Помог: 9 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. $file2 = '1.txt';
  3. $fp2 = file($file2);
  4. for($i = 0; $i < count($fp2); $i ++)
  5. {
  6. if (preg_match("/Привет/i", $fp2[$i])) {
  7. unset($fp2[$i]);
  8. }
  9. $handle = fopen($file2, 'a');
  10. fwrite($handle, $fp2[$i]);
  11. fclose($handle);
  12. }
  13. ?>

Пробуйте...

(Отредактировано автором: 28 Июля, 2012 - 12:04:17)

 
 Top
Evgeniu
Отправлено: 28 Июля, 2012 - 12:04:26
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Green
Строчка не удалилась и в фаил записалась строка Array
 
 Top
Green
Отправлено: 28 Июля, 2012 - 12:05:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


Помог: 9 раз(а)




Я ошибся так чуток. Поправил. Попробуйте сейчас.
 
 Top
Evgeniu
Отправлено: 28 Июля, 2012 - 12:07:58
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




Green
Строку не удаляет а записывает самую первую строку файла
 
 Top
Bio man
Отправлено: 28 Июля, 2012 - 12:12:10
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




file(), unset(), join(), file_put_contents()
 
 Top
KingStar
Отправлено: 28 Июля, 2012 - 12:12:21
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




тебе нужно строку по номеру (2-ю или 10-ю), или строку по названию ???


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Green
Отправлено: 28 Июля, 2012 - 12:13:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


Помог: 9 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. $file  = '1.txt';
  3. $array = file($file);
  4.  
  5. for($i = 0; $i < count($array); $i ++)
  6. {
  7.         if(preg_match('/Привет/i', $array[$i]))
  8.         {
  9.                 unset($array[$i]);
  10.         }
  11. }
  12.  
  13. $handle = fopen($file, 'a');
  14. fwrite($handle, implode(PHP_EOL, $array));
  15. fclose($handle);

Переписал скрипт Ваш... Этот должен работать.
 
 Top
Evgeniu
Отправлено: 28 Июля, 2012 - 12:13:43
Post Id



Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2012  


Помог: 0 раз(а)




KingStar
По названию
(Добавление)
Green
Не работает опять создает название которые есть в файле
(Добавление)
Bio man
file_put_contents() а зачем мне записывать сторку в фаил?
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB