Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199

Динамическое создание папок. Неверное именование папок. Что делать?

06.01.2015, 01:14. Показов 2707. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи!

Столкнулся со следующей проблемой.


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
Цикл1{
...
...
// Цикл2
 
for($l=0;$l<(count($selection));$l++){ 
$Prefix .= '_'.$PreArr[$selection[$l]]; //Тут получается что-то типа '_Иванов_Петр'
}// Конец Цикл2
      $dirTempOutput = mkdir('users/'.$_SESSION['MM_Username'].'/temp/output/'.$j.$Prefix.'/',0777); // Должна быть создана папка 'users/Username/temp/output/1_Иванов_Петр/', потом 'users/Username/temp/output/2_Сидоров_Олег/' и т.д.
$Prefix = '';
...
...
}//Конец Цикл1
но по факту создается только 1 папка. Что я делаю не правильно?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.01.2015, 01:14
Ответы с готовыми решениями:

Создание папок
Вот функция: if (!is_dir('../images/photos/'.$section)) { mkdir('../images/photos/'.$section); } Ругается: Warning:...

Создание папок на сервере
Всем дорого времени суток! Подскажите, как правильно написать код создания папки. Мне нужно создать папку с именем переменной $coverid. Я...

Создание папок при регистрации
Всех с наступающим новым 2014 годом. Покажите мне код, которы бы можно было вставить в существующий скрипт регистрации и который создавал...

6
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
06.01.2015, 01:24
А зачем вам тут 2 цикла? Если в цикле 2 повыводите значения префикса, получите что-то интересное)

UPD: я понял структуру можете ещё внешний цикл написать? Он много раз запускается?
0
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
06.01.2015, 10:35  [ТС]
ltkj, в зависимости от входных значений. много раз) у меня в тестовом режиме 100 раз
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
06.01.2015, 11:41
Цитата Сообщение от lemuriec Посмотреть сообщение
но по факту создается только 1 папка. Что я делаю не правильно?
А как мы по этому куску кода можем ответить? Может у Вас там цикл на одну итерацию. Выкладывайте уж тогда весь ход. Также входные данные (как выглядят массив $PreArr, $selection и т.д.) и желаемый результат.

И цикл 2 вообще какой то непонятный. Если получается имя и фамилия, то это цикл на 2 итерации? То есть $l меняется от 0 до 1? То есть можно просто писать:
PHP
1
$Prefix = '_'.$PreArr[$selection[0]].'_'.$PreArr[$selection[1]];
а строку
PHP
1
$Prefix = '_';
удалить? Ну даже если так нельзя, хотя бы вынесите это в отдельную функцию что ли... Неудобно читать такие страшные циклы.
0
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
06.01.2015, 22:21  [ТС]
pav1uxa, Сами массивы чуть позже покажу. Суть такая. Пользователь выбирает префикс сам. Например имя фамилия или имя фамилия отчество. от этого зависит количество элементов в массиве selection.
То есть:
PHP
1
$Prefix = '_'.$PreArr[$selection[0]].'_'.$PreArr[$selection[1]];
это не вариант.
Массив PreArr имеет содержание типа Имя => Петр Фамилия => Иванов и т.д.
Просто вот этот код:
PHP
1
$dirTempOutput = mkdir('users/'.$_SESSION['MM_Username'].'/temp/output/'.$j.'/',0777);
работает идеально. Но стоит добавить префикс как код перестает работать(

Добавлено через 8 часов 50 минут
ltkj, pav1uxa,
Массив $selection динамически - заполняется из формы на предыдущей странице. То есть там форма, в которой пользователь выбирает префикс(Имя, фамилия и т п).
PHP
1
2
3
4
5
6
7
8
for ($j=1; $j<=(count($Data)-1); $j++) {
    $PreArr = array_flip($vals = array_combine($Data[$j], $firstCol));
for($l=0;$l<(count($selection));$l++){
$Prefix .= '_'.$PreArr[$selection[$l]];
}
   $dirTempOutput = mkdir('users/'.$_SESSION['MM_Username'].'/temp/output/'.$j.$Prefix.'/',0777);
   $Prefix = "";
}
0
06.01.2015, 23:07

Не по теме:

По шкале бредовости ставлю этому скрипту 9 из 10 >_< Такое ощущение что писавший его человек нарочно пытался сделать так, чтобы непонятно было вообще ничего :cry:

0
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
07.01.2015, 15:19  [ТС]
pav1uxa, Ну... ты конечно может не понимаешь для чего это, но суть в том что папка просто не создается.Пробовал $Prefix заменить на просто '-Prefix'. Так тоже не хочет создавать. А как только убираю все прекрасно создается. То есть я так понял он не хочет создавать папку с буквенными названиями

Добавлено через 43 минуты
Вроде заработал. Но теперь папки дублируются. Должно быть: Папка "1ПетрИванов", папка "2АлексейСидоров", папка "3АнатолийИванов", а по факту создается: Папка "1ПетрИванов", папка "1ПетрИвановПетрИванов", папка "2АлексейСидоров", папка "2АлексейСидоровАлексейСидоров",папк а "3АнатолийИванов", папка "3АнатолийИвановАнатолийИванов". Вот код:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if(!empty($FileNames)){
foreach($FileNames as $value){
        $selection[] = $value;
    }   
} else {
    $selection = "";
}
    
// проходим по строкам таблицы и создаем массивы 1 строчные  
for ($j=1; $j<=(count($xlsData)-1); $j++) {
    $PreArr = array_flip($vals = array_combine($xlsData[$j], $firstCol));
for($l=0;$l<(count($selection));$l++){
$Prefix .= $PreArr[$selection[$l]];
}
      $dirTempOutput = mkdir(iconv('UTF-8','CP1251','users/'.$_SESSION['MM_Username'].'/temp/output/'.$j.$Prefix),0777);
     
      for ($k=1; $k<=count($TempFiles); $k++) {
      $moveFiles -> moveFiles($TempFiles[$k],iconv('UTF-8','CP1251',$DownFilePath.$j.$Prefix.'/'.$_FILES["filename".$k]["name"]));
    }
unset($Prefix) ;
    }
}
Добавлено через 15 часов 16 минут
Кто-нибудь подскажет в чем может быть ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.01.2015, 15:19
Помогаю со студенческими работами здесь

IDEA не видит структуру проекта(папок src, out, .idea). Что делать?
IDEA не видит структуру проекта(папок src, out, .idea). То есть сам проект есть, все созданные классы есть, но запустить их не можно, Idea...

txt файл с именами папок внутри самих папок (в кодировке 1251)
Добрый вечер ) Есть несколько сотен папок, в каждой из которых нужно создать файл album.txt в котором будет записано имя этой папки...

Excel / Очистка конкретный папок от старых папок и файлов с исключением
Доброго времени суток! Excel: Есть ListBox (в коде ListDel), в котором мы создаем список папок. Эти папки, при нажатии на кнопку...

В папке нахотится неизвестное количество папок, а в каждой из папок по одному текстовому файлу...
Ребята помогите пожалуйста! У меня такая задача: в папке нахотится неизвестное количество папок, а в каждой из папок по одному текстоваму...

Получить список папок и вложенных папок, отсортированных по размеру
Как можно получить список папок и вложенных папок, отсортированных по размеру


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru