PHP - удалить последний символ файла - PullRequest
10 голосов
/ 02 декабря 2011

У меня есть небольшой скрипт 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 () будет хранить все эти данные в памяти, что потенциально может максимально увеличить память моего сервера.

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

Спасибо

1 Ответ

22 голосов
/ 02 декабря 2011

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

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

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

Для получения дополнительной помощи см. это

...