Создание папок с порядковым номером
Здравствуйте! Как можно на PHP создавать папки, имя которым автоматически присваивается, как порядковый номер 1, 2, 3 и т.д., в зависимости от номера предыдущей папки (+1).
|
Как вариант...
- Выбрать папки типа myfolder*.* - Найти максимальное число, отсекая myfolder из имени - Добавить инкремент - Создать новую папку с именем myfolderN |
А кодом можно?
|
Sonya,
и как же вы потом разбираться будете кому какая папка принадлежит? |
С ней параллельно будет создаваться запись в текстовом файле.
|
Sonya,
вы изобретаете костыль. |
Я же написала параллельно, а не для того, чтобы связывать папку с записью, у папки и записи разные задачи, но они, таким образом, опосредованно связаны.
|
Файловая система не такая и "легкая" как кажется, да если учесть, что таким каталогом еще и управлять надо... Поэтому, уже "создавать папки с последовательной нумерацией" наводит на мысль, что что-то не так. Что же такого содержится в ваших папках?
|
В неё копируется PHP файл, вызов которого происходит из программы (exe) на ПО пользователя. Нашла такой код, но он не работает:
$dir = '1/'; $ff = scandir($dir); $nums = array(); foreach($ff AS $f) { if($ff[0]!='.' && is_numeric($ff))$nums[] = (int)$f; } $dirname = $dir.(max($nums)+1); mkdir($dirname); |
Цитата:
И что для каждого пользователя/ПО свой индивидуальный РНР скрипт чем-то отличающийся? |
Файл PHP в каждой папке свой. Программа среагирует на Ваше действие в зависимости от Вами поставленной задачи. Не хочу углубляться в работу самой программы, у меня вопрос по серверной части. Что не так в этом коде:
$dir = '1/'; $ff = scandir($dir); $nums = array(); foreach($ff AS $f) { if($ff[0]!='.' && is_numeric($ff))$nums[] = (int)$f; } $dirname = $dir.(max($nums)+1); mkdir($dirname); Вроде ищет, прибавляет, создает, почему не работает? |
Вообще то достаточно glob с параметром GLOB_ONLYDIR.
Не создает, значит нет прав на запись у родительского каталога, проверьте. А вообще, кошмар какой-то. |
Спасибо.
|
Создает только одну папку, далее выдает ошибку, что папка уже есть.
|
Вообще-то, по уму, сценарий должен быть один, результат только может быть различным для каждого случая, то есть задаваться параметром. Другими словами скрипт-диспетчер. Плодить папки для запроса различных скриптов, это нонсенс.
Если ошибка уже создана, то либо скрипт не то выполняет, либо это и есть проблема "костыля вашего, то есть создание папок ...", так как у вас эта задача подпадает под "многопользовательский доступ". И вряд ли это у вас учитывается, если при тесте вы ошибок из-за этого вряд ли получите, то в реальном режиме скорее всего их не избежать. |
Ошибку нашла, сейчас работает.
"Вообще-то, по уму, сценарий должен быть один, результат только может быть различным для каждого случая, то есть задаваться параметром. Другими словами скрипт-диспетчер." - именно так он реализован в программе. В папках, как раз сохраняются параметры, к файлу PHP, который в нее скопирован, своеобразный config.ini в txt формате, который задается пользователем (авторизированным), который создает эту папку, все остальные только видят результат работы, но не могут менять параметры или файл. |
Цитата:
|
Безусловно, БД лучше, хотя здесь, для пользователя, как раз нет фиксированной папки, если папка, например 10 занята, то создается папка 11.
|
Цитата:
Впрочем дело хозяйское, поступайте как знаете. |
Часовой пояс GMT +3, время: 23:47. |