Как я могу удалить ненужные пробелы из TXT-файла

Я пытаюсь изменить мой текстовый файл, который я использую в dokuwiki.

Я генерирую метку времени поверх txt-файла следующим образом:

function filecont($file,$data)
{
$fileContents = file($file);

array_shift($fileContents);
array_unshift($fileContents, $data);

$newContent = implode("\n", $fileContents);

$fp = fopen($file, "w+");
fputs($fp, $newContent);
fclose($fp);
}

И мой оригинальный текстовый файл выглядит так:

Теперь, когда я использую свою функцию:

$txt= "Last generated: " . date("Y M D h:i:s");
filecont($file,$txt);

Я получаю такой результат:

Теперь я не хочу удалять мои ====== Open IoT book ======это, вероятно, потому что у меня нет пустого места в первой строке?

Но худшая проблема, которая у меня есть, это то, что я генерирую много пустых мест, чего я не хочу.

Я только хочу получить last generated в верхней части TXT-файла и все остальное нетронутым

0

Решение

Я проверил ваш код и удалил лишние новые строки, изменив строку:

$fileContents = file($file);

в

$fileContents = file($file, FILE_IGNORE_NEW_LINES);

Добавление флага FILE_IGNORE_NEW_LINES останавливает добавление новой строки к каждому элементу / строке.

http://php.net/manual/en/function.file.php.

Я также удалил функцию array_unshift (), которая оставляет в файле ‘====== Open IoT book ======’.

Итак, моя последняя функция выглядела так:

function filecont($file,$data)
{
$fileContents = file($file, FILE_IGNORE_NEW_LINES);

//array_shift($fileContents); Removed to preserve '====== Open IoT book ======' line.
array_unshift($fileContents, $data);

$newContent = implode("\n", $fileContents);

$fp = fopen($file, "w+");
fclose($fp);
}
2

Другие решения

Можно просто удалить эту строку

array_shift($fileContents);

решить вашу проблему?

1

когда вы получаете элементы файла, вы должны проверить, Last generated: как ваш первый ряд или не в соответствии с этим вам нужно использовать array_shift

$fileContents = file($file);
if(stripos($fileContents[0],"Last generated:") !== false)
{
array_shift($fileContents); //if found use shift
}

array_unshift($fileContents, $data);
1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector