PHP - Удалить последний символ файла


У меня есть небольшой php-скрипт, который удаляет последний символ файла.

$contents = file_get_contents($path);
rtrim($contents);
$contents = substr($contents, 0, -1);
$fh = fopen($path, 'w') or die("can't open file");
fwrite($fh, $contents);
fclose($fh);    

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

Меня беспокоит то, что этот файл может содержать много данных, и вызов file_get_contents() затем сохранит все эти данные в памяти, что потенциально может увеличить объем памяти моих серверов.

Есть ли более эффективный способ удалить последний символ из файла?

Спасибо

Author: sulman, 2011-12-02

1 answers

Попробуйте это

$fh = fopen($path, 'r+') or die("can't open file");

$stat = fstat($fh);
ftruncate($fh, $stat['size']-1);
fclose($fh); 

Для получения дополнительной информации см. это

 21
Author: azat, 2011-12-02 10:04:09