Php удалить определенную строку

Удаление строки из файла

Я очень часто встречаю вопрос типа «Как удалить определенную строку из файла?». Народ совсем не хочет шевелиться, ведь так легко зайти на любой крупный форум по PHP, и в сроке поиска написать что-то типа «Удаление строк из файла». Пятерка результатов гарантирована. Итак, мы как раз рассмотрим способ удаления определенной строки из текстового файла

Для начала было бы совсем не плохо создать текстовый файл. Назовём его file.txt, который будет состоять из строк, которые мы будем удалять:

Затем создаём что-нибудь типа file.php, занимающий около 11 строк!

if ($id != "") < $id--; $file=file("file.txt"); for($i=0;$i$file);$i++) if($i==$id) unset($file[$i]); $fp=fopen("file.txt","w"); fputs($fp,implode("",$file)); fclose($fp); > ?>

Сначала определимся, что для удаления определенной строки нам нужен её номер. Его мы будем передавать с идентификатором id: file.php?id=2 (удалим строку под номером ТРИ, так как исчисления элементов в массиве ведётся с нуля, но позже мы это сгладим).

  • функция file() считывает весь файл в массив (каждая строка — это его элемент);
  • $id-вычитает один из нашего идентификатора, так что 2 становится 2, а 3 — 3;
  • unset($file[$i]) удаляет или обнуляет элемент массива (но только из памяти, т. е. виртуально:);
  • implode() объединяет массив в одну строку. Это очень важно, так как если бы это опустили, наш файл бы похудел до бесполезной записи Array;

Рекомендуем почитать

Источник

Php удалить определенную строку

Почитал, что пишут на эту тему в «интернетах» — прикольно. смайлы .

Что нужно для удаления строки в php?

Для того, чтобы удалить уникальную строку в php надо соблюсти одно главное условие:

Читайте также:  Метод update python множество

Если вы хотите удалить определенную, конкретную, уникальную строку в php вам потребуется какой-то уникальный идентификатор строки, по которому php мог найти эту строку!

Если речь идет о файле php(либо о коде php), то в файле php можно закомментировать строку и написать в этой строке все, что угодно:

Если это обычная строка(тип) — в смысле, что это текст, то здесь один единственный способ — разделение в массив, удаление строки по номеру ячейки.

Удаляем строку в php в тексте.

Для того, чтобы удалить строку в тексте вс помощью php, вам понадобится:

Нам нужен пример текста для удаления строки, поместим его в переменную:

$delete_string_php =’Здесь строка.

В котором требуется удалить строку.’;

Далее — вам потребуется функция explode. Применим её к данному тексту, разделителем будет перевод строки «\n»:

Вы получите массив, выведем с помощью print_r:

Обращаю ваше внимание на то, что нумерация строк начинается с нуля:

[2] => В котором требуется удалить строку.

Далее — например вам требуется удалить строку №1, вам потребуется unset применим её к массиву, и у вас получится:

[2] => В котором требуется удалить строку.

Теперь нужно массив вернуть в строку с помощью (implode).

Соберем весь код удаления строки в одно целое:

Код удаления строки в сборе

Код в сборе для удаления строки из переменной с текстом вы можете скачать здесь.

Удаляем строку в файле.

Алгоритм удаления строки аналогичный, что уже был описан в выше расположенном пункте с некоторыми отличиями.

Для того, чтобы удалить строку из файла вам понадобится:

Создадим первый файл — .txt — в котором будет находиться текст.

Получаем текст в переменную с помощью file_get_contents.

Далее вся теория из предыдущего пункта:

И далее готовую строку можем записать в старый файл, но поскольку — у нас тут задача стоит в том, чтобы показать пример. запишем текст в новый файл.

Читайте также:  Автозапуск скриптов python linux

Соберем весь код удаления строки из файла.

Источник

Удаление строки из файла с помощью php

В этой статье я хочу показать, как можно с помощью php написать удаление строки из файла по ее номеру. Поскольку задача сама по себе не сложная, на ее примере я хочу еще показать, как в php можно выводить ошибки в пользовательских функциях.
Для вывода ошибок удобно использовать функцию trigger_error, она служит для вызова пользовательских ошибок, предупреждений или уведомлений.

Функция реализующая удаление строки из файла

Ниже приведу код функции, которая удаляет строку из файла по номеру. Код подробно прокомментирован:

/** * Функция для удаления строки из файла * * @param string $fileName - расположение файла * @param string $num - номер строки, которую нужно удалить */ function delStringByNum($fileName, $num) < // Открываем файл $file = @file($fileName); // если файл не найден, выводим ошибку if(!$file)< trigger_error("File '$fileName' not found!"); return false; >// если номер строки не корректный, сообщим об этом if(!isset($file[$num-1])) < trigger_error("Incorrect number string: ($num)"); return false; >// удаляем строку $num = intval($num)-1; unset($file[$num]); // открываем файл для записи $fileOpen = @fopen($fileName,"w"); // если файл невозможно редактировать, сообщаем об этом if(!$file) < trigger_error("File '$fileName' is not writable!"); return false; >// перезаписываем файл fputs($fileOpen,implode("",$file)); fclose($fileOpen); return true; >

И приведу пример использования нашей функции:

// пример использования функции $result = delStringByNum('/files/test.txt', 3); var_dump($result);

Источник

Удаление строки в txt файле

PHP не знаю совсем, но срочно нужен маленький скрипт.
Суть: скрипт открывает co.txt, считывает первую строку, показывает её, записывает в файл rob.txt и удаляет её из co.txt.
Ниже код, который удаляет 1 строку в co.txt если кому понадобится

$num_stroka = 0; //Удалим 1 строку из файла $file = file("co.txt"); // Считываем весь файл в массив for($i = 0; $i  sizeof($file); $i++) if($i == $num_stroka) unset($file[$i]); $fp = fopen("co.txt", "w"); fputs($fp, implode("", $file)); fclose($fp);

Перевод строки в txt файле
Есть скрипт php, который построчно считывает текст из файла txt и выводи на экран. Какой код.

PHP GET удаление строки из txt
В php я ноль, помогите сделать так: При переходе по ссылке — test.ru/get.php?=123456 И из.

Поиск и замена части строки в файле txt
Добрый день товарищи! Знаю тема неоднократно создавалась,но пошуршав на сайте ничего такого как.

Поиск в .txt файле строки по условию
Добрый вечер интересует такой вопрос. Как вывести на страничке часть строки их текстового файла.

отталкиваясь от твоего кода:

$row_number = 0; //номер строки которую удаляем $file_out = file("co.txt"); // Считываем весь файл в массив //записываем нужную строку в файл file_put_contents("rob.txt", $file_out[$row_number], FILE_APPEND); //удаляем записаную строчку unset($file_out[$row_number]); //записали остачу в файл file_put_contents("co.txt", implode("", $file));

Вот такая вот ошибка выскакивает:
Warning: implode() [function.implode]: Invalid arguments passed in Z:\denwer\www\denwer\index.php on line 12

В файл rob.txt строка записывается, но co.txt становится пустым.
И еще надо сделать так, чтобы скрипт выдавал выбранную строку.

Эксперт HTML/CSSЭксперт PHP

ЦитатаСообщение от Diavolingel Посмотреть сообщение

здесь поменяй на $file_out вместо $file

Добавлено через 25 секунд
а хотя нет.

ЦитатаСообщение от KOPOJI Посмотреть сообщение

здесь поменяй на $file_out вместо $file

Добавлено через 25 секунд
а хотя нет.

Эксперт HTML/CSSЭксперт PHP

1 2 3 4 5 6 7 8 9 10 11 12 13 14
$row_number = 0; //номер строки которую удаляем $file = file("co.txt"); // Считываем весь файл в массив $count=count($file); // узнаем число записей массива for($i=0;$i$count;$i++) { if($i==0) { $first_str = $file[$i]; // это первая строка $full_file = ""; } else { $full_file.=$file[$i]."\n"; //а здесь все кроме первой строки будет в итоге } } file_put_contents("rob.txt",$first_str); //записываем первую строчку в один файл file_put_contents("co.txt",$full_file); //записываем все остальное в другой файл
1 2 3 4 5 6 7 8 9 10 11 12 13 14
 $row_number = 0; //номер строки которую удаляем $file_out = file("co.txt"); // Считываем весь файл в массив //записываем нужную строку в файл file_put_contents("rob.txt", $file_out[$row_number], FILE_APPEND); echo "$file_out[$row_number]"; //удаляем записаную строчку unset($file_out[$row_number]); //записали остачу в файл file_put_contents("co.txt", implode("", $file_out)); ?>

Источник

Оцените статью