@Nentra

При использовании ftruncate после сохранения файла fwrite появляются много NULL в начале строки, что сделать чтобы их там не было?

664275be46a0b591698328.png
После выполнения кода
<?php
    $pathUrl = dirname(__DIR__, 1) . "/orders/";
    $filename = 'listOrderFiles.txt';
    $lines = array(); // Массив для хранения строк файла

    $file = fopen($pathUrl . $filename, 'c+');
    while (($line = fgets($file)) !== false) {
        $lines[] = $line;
    }

    ftruncate($file, 0); // Очищаем файл

    array_shift($lines);
    
    foreach ($lines as $name) {
        fwrite($file, $name);
    }

    fclose($file);


Получается вот это
6642763a9bf8d898429421.png

При использовании ftruncate после сохранения файла fwrite появляются много NULL в начале строки, что сделать чтобы их там не было?
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
используй rewind() после ftruncate()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
<?php
$pathUrl = dirname(__DIR__, 1) . "/orders/";
$filename = 'listOrderFiles.txt';
$lines = [];

//считываем все строки файла в массив
$handle = fopen($pathUrl . $filename, "r");
while (($line = fgets($handle)) !== false) {
    $lines[] = $line;
}
fclose($handle);

//удаляем первую строку
unset($lines[0]);

//записываем всё оставшееся в файл
$handle = fopen($pathUrl . $filename, "w");
foreach($lines as $line) {
    fwrite($handle, $line);
}
fclose($handle);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы