[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как в текстовом файле найти определенную строку
Bandicoot
Дан текстовый файл, состоящий из нескольких строк. Нужно найти определенную строку в файле и заменить ее на пустую. Как это можно сделать?



Спустя 18 минут, 53 секунды (22.02.2011 - 12:32) linker написал(а):
Ты не знаешь как сравнить одну строку с другой строкой?

Спустя 1 час, 2 минуты, 47 секунд (22.02.2011 - 13:35) Bandicoot написал(а):
Поясню один момент - как найти нужную строку мне в общем известно, т.к. знаю критерии поиска. А вот как найденную строку заменить на пустую - не могу понять.

Спустя 10 минут, 4 секунды (22.02.2011 - 13:45) Adil написал(а):

Спустя 8 минут, 32 секунды (22.02.2011 - 13:54) Bandicoot написал(а):
Цитата (Adil @ 22.02.2011 - 10:45)
http://php.net/manual/en/function.str-replace.php

Я уже обращал внимание на эту функцию, но как ее совместить с функцией file_put_contents ? Если бы я знал как применить правильно эти функции, я бы не открывал бы тему на форуме. Ребята, приведите пожалуйста примеры кода. Напомню, речь идет о замене целой строки на пустую строку, т.е. проще говоря, удалении строки из файла

Спустя 24 минуты, 17 секунд (22.02.2011 - 14:18) Evilsoul написал(а):
Bandicoot
Приведи ты код, будет видно что ты делаешь, а вообще если ты используешь file_put_contents то по логике нужно сделать замену перед записью, в чем проблема?

Спустя 1 минута, 48 секунд (22.02.2011 - 14:20) Evilsoul написал(а):
Цитата
т.е. проще говоря, удалении строки из файла
извини не дочитал...
тогда нужно подробнее описать проблему что в файле какие строки и что нужно удалить, по какому совпадению.

Спустя 10 секунд (22.02.2011 - 14:20) linker написал(а):
$data = file('file.txt', FILE_IGNORE_NEW_LINES);
...

file_put_contents('file.txt', implode("\n", $data));

Спустя 18 минут, 43 секунды (22.02.2011 - 14:39) Bandicoot написал(а):
Вот код, который должен удалять данные о пользователе из текстового файла (информация о каждом пользователе содержится в отдельной строке). Какого именно пользователя нужно удалить, скрипт узнает по методу GET из другого скрипта. Нужно дополнить код:
<?php

session_start();

$addusers = "users/ref_".$_SESSION['username'].".inc";

// Загружаем данные из файла с информацией о привлеченных пользователях в ассоциативный массив $addusers
$add_user_data = file($addusers, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach($add_user_data as $add_user_line)
{
// Проверяем, есть ли в файле данных юзер с id
if (strstr($add_user_line, $_GET['id']))
{
// Вот здесь нужно организовать удаление строки с информацией о пользователе
}
}


?>

А это файл с данными пользователей:

<tr><td>vasya</td><td><a href="delete_user.php?id=vasya">Удалить</a></td></tr>

Как видите, здесь есть также и html теги, для того чтобы выводить в документе данные о пользователях в табличном формате и иметь возможность их удалить прямо из таблицы

Спустя 6 минут, 46 секунд (22.02.2011 - 14:45) KonstantinK написал(а):
Не пойму в чем сложность, удали нужный элемент массива $add_user_data и запиши все обратно в файл

Спустя 3 минуты, 54 секунды (22.02.2011 - 14:49) Bandicoot написал(а):
Цитата (KonstantinK @ 22.02.2011 - 11:45)
Не пойму в чем сложность, удали нужный элемент массива $add_user_data и запиши все обратно в файл

Удаление элемента этого массива, это и есть удаление строки, что как раз мне и нужно. Можно пример кода?

Спустя 7 минут, 36 секунд (22.02.2011 - 14:57) Snus написал(а):
Bandicoot
	foreach($add_user_data as $key => $add_user_line)
{
// Проверяем, есть ли в файле данных юзер с id
if (strstr($add_user_line, $_GET['id']))
{
unset($add_user_data[$key]);
}
}

Спустя 22 минуты, 2 секунды (22.02.2011 - 15:19) Bandicoot написал(а):
Цитата (Snus @ 22.02.2011 - 11:57)
Bandicoot
	foreach($add_user_data as $key => $add_user_line)
{
// Проверяем, есть ли в файле данных юзер с id
if (strstr($add_user_line, $_GET['id']))
{
unset($add_user_data[$key]);
}
}

Теперь, насколько я понял, нужно очистить файл с данными и записать новое содержимое?

Спустя 2 минуты, 25 секунд (22.02.2011 - 15:21) Snus написал(а):
Bandicoot
linker написал уже что дальше )

Спустя 34 минуты, 46 секунд (22.02.2011 - 15:56) Bandicoot написал(а):
Ок, отлично, все работает! Спасибо!


_____________
Работаю с Уии
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.