PHP создать файл с конкретным именем

Этот код для создания нового файла работает хорошо:

<?php
$myfile = fopen("LMS-NUMBER.txt", "w") or die("Unable to open file!");
$txt = "John Doe\n";
fwrite($myfile, $txt);
$txt = "Jane Doe\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

Я хочу создавать файлы с такими именами, как: LMS-001.txt, LMS-002.txt, LMS-003.txt и т. Д.
или LMS-1.txt, LMS-2.txt, LMS-3.txt. Я предпочитаю этот формат: LMS-001

Спасибо


Я хочу создать больше файлов за одну форму. Поэтому после повторного нажатия на кнопку «Отправить» будут созданы такие файлы, как:

1st click = LMS-1.txt;
2nd click = LMS-2.txt;
3rd click = LMS-3.txt;

-6

Решение

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

Если я прав, то вы спрашиваете, как создать новые файлы с числовым суффиксом на один выше, чем предыдущий файл, чтобы предотвратить перезапись. Простой способ сделать это — цикл for (), который проверяет, существует ли имя основного файла + число счетчиков, и продолжает работу, пока не найдет тот, который еще не существует. Затем вы можете сохранить имя файла с итерацией цикла, в котором файл не существует, и, наконец, записать в новый файл с этим именем. В качестве примера;

<?php
/* Here you can set the core filename (from your question, "LMS"),
as well as the number of maximum files. */
$coreFileName   = "LMS";
$maxFilesNum    = 100;

// Will store the filename for fopen()
$filename = "";

for($i = 0; $i < $maxFilesNum; $i++)
{
// File name structure, taken from question context
$checkFileName = $coreFileName . "-" . str_pad($i, 3, 0, STR_PAD_LEFT) . ".txt";

// If the file does not exist, store it in $filename for writing
if(!file_exists($checkFileName))
{
$filename = $checkFileName;
break;
}
}

$fd = fopen($filename, "w");
fwrite($fd, "Jane Doe"); // Change string literal to the name to write to file from either input or string literal
fclose($fd); // Free the file descriptor

Я протестировал его, и он работает, поэтому каждый раз, когда страница обновляется, создается новый файл с числовым суффиксом на один выше, чем ранее созданный файл. Я сделал это так, что он будет создавать максимум до 100 файлов, вы можете отрегулировать это, как вам угодно, с помощью переменной $ maxFilesNum в верхней части, однако я рекомендую установить ограничение, чтобы ваша файловая система в вашей локальной или удаленный сервер не заполняется файлами.

Редактировать: Теперь включает отступы для 001, 002 … 100

1

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

Других решений пока нет …

По вопросам рекламы [email protected]