Как удалить строку из файла на PHP?

Пользователь

от catherine_wintheiser , в категории: PHP , 3 года назад

Как удалить строку из файла на PHP?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 3 года назад

@catherine_wintheiser Как пример Вы можете использовать код ниже чтобы удалить специфическую строку из файла на PHP:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

$path = 'test.txt';
// Удалить линию
$deleteLine = "test";

// Создать временный файл
$temp = tempnam('./', 'tmp');
// Открыть файл для чтения
$resource = fopen($path, "r");
if ($resource) {
    // Читаем файл
    while (!feof($resource)) {
        $buffer = fgets($resource, 4096);
        // Проверяем если строку не нужно удалить
        if (trim($buffer) !== $deleteLine) {
            file_put_contents($temp, $buffer, FILE_APPEND);
        }
    }
    fclose($resource);
    // Удалить файл
    unlink($path);
    // Переменовать временный файл
    rename($temp, $path);
}


Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от shayna.buckridge , 2 года назад

@catherine_wintheiser 

Чтобы удалить строку из файла на PHP, нужно выполнить следующие шаги:

  1. Открыть файл для чтения и записи с помощью функции fopen(). Например, чтобы открыть файл file.txt в режиме r+ (чтение и запись), используйте следующий код:
1
$file = fopen('file.txt', 'r+');


  1. Прочитать содержимое файла с помощью функции fgets() или другой функции чтения файла.
  2. Используя функцию strpos() найти позицию строки, которую нужно удалить. Например, чтобы удалить строку "example string", используйте следующий код:
1
$position = strpos($file_content, 'example string');


  1. Используя функцию fseek() переместить указатель файла на начало строки, которую нужно удалить. Например, чтобы переместить указатель на начало строки "example string", используйте следующий код:
1
fseek($file, $position);


  1. Используя функцию ftruncate() обрезать файл до текущей позиции указателя файла. Например, чтобы удалить строку "example string", используйте следующий код:
1
ftruncate($file, $position);


  1. Закрыть файл с помощью функции fclose().
1
fclose($file);


Вот полный пример кода для удаления строки "example string" из файла file.txt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$file = fopen('file.txt', 'r+');

// Читаем содержимое файла
$file_content = fread($file, filesize('file.txt'));

// Находим позицию строки, которую нужно удалить
$position = strpos($file_content, 'example string');

// Перемещаем указатель на начало строки
fseek($file, $position);

// Обрезаем файл до текущей позиции указателя
ftruncate($file, $position);

// Закрываем файл
fclose($file);