Closed bear-gha closed 5 days ago
Друг, оно ж никак на функциональность не влияет)
С таким раскладом можно на все баги забивать 😉
Поковырял немного, проблема с переносом тут:
$lastChar = substr($s, -1);
if ($lastChar !== "\n") {
$s .= "\n";
}
Если поправить на это, то переноса лишнего не будет:
$lastChar = substr($s, -1);
if ($lastChar !== "\n" && !empty($s)) {
$s .= "\n";
}
Но возникает новая ошибка из-за этого:
case 'filesave':
$result = saveFile($_POST['filename'], $_POST['content']);
$response = array('status' => $result ? 0 : 1, 'filename' => $_POST['filename']);
break;
Потому что этот код работает некорректно:
function saveFile(string $filename, string $content, $path = ROOT_DIR . '/etc/nfqws') {
$filename = basename($filename);
$file = $path . '/' . $filename;
if (file_exists($file)) {
return file_put_contents($file, normalizeString($content));
} else {
return false;
}
}
Вот в этой части:
return file_put_contents($file, normalizeString($content));
Так как функция возвращает 0, потому что записала 0 байт, а не потому что она сфейлилась, а при 0 другой код думает, что произошел фейл. Это описано тут - https://www.php.net/manual/en/function.file-put-contents.php
Warning This function may return Boolean false, but may also return a non-Boolean value which evaluates to false. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.
Если исправить код на это, то оно работает, но по "красоте" оно мне не нравится, т.к. "кривой" ретурн никуда не делся, всего лишь обошел исключением:
function saveFile(string $filename, string $content, $path = '/opt/etc/nfqws') {
$filename = basename($filename);
$file = $path . '/' . $filename;
if (file_exists($file)) {
if (empty($content)) {
file_put_contents($file, "");
return true;
} else {
return file_put_contents($file, normalizeString($content));
}
} else {
return false;
}
}
Поправил красиво, оформил пул, проверяйте.
П.С. Все еще жду кнопку очищения лога ;).
Приветствую. Веб пакет 2.5.9.
Делаем - например чистим auto.list до полной пустоты, жмем Save. Переключаем вкладки листов, возвращаемся назад в него же. Итог - лишний перенос строки. Если лист начнёт заполняться, вначале так же будет лишний перенос строки.