С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827

Print_r или var_dump удаляет пустые папки. Возможно ли? Как и почему?

16.05.2019, 12:06. Показов 816. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал функцию для поиска файлов. Вроде бы работает хорошо. На её основе написал функции поиска по типу файла, поиск пустых папок, построение списка с превьюшкой для полученных результатов. Был всем доволен пока не вернулся случайно к функции поиска файлов. У меня все функции собраны в одном файле и вызываются кнопкой. Случайно нажал и заметил, что пустые папки удалились. Пока не взялся за написание функции для поиска пустых папок, я таковые не создавал, потому видимо раньше и не замечал такое поведение. Помучавшись, вырезал функцию в отдельный файл и там после ряда проверок выяснил, что удаляет папки либо после проверки print_r или var_dump массива, ответственного за хранение ссылок на картинки превью, либо после пробы вывести превью. Причем проверки срабатывают, превью выводится, а пустые папки удаляются. С другими функциями, написанными на основе этой такого нет. Почему такое происходит понять не могу. Вроде нигде не написано. что подобное может удалять папки, да и вообще что-либо. В мануалах только про rmdir написано. Она то может удалять именно пустые папки, потому и функция под это пишется легко, но тут то я её не вызываю.
Код вот такой:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    function find_all_files($dir)
       {
    global $pic_on; global $parth_on;
        $root = scandir($dir);
      foreach($root as $value) // перебираем
           {
            if($value === '.' || $value === '..') {continue;} // пропускаем
            if(is_dir($dir.'/'.$value))  find_all_files($dir.'/'.$value); // если директория, то продолжаем сканировать
              if(is_dir($dir.'/'.$value))  continue;
                      $parth_on[] = $dir.'/'.$value;
                        $path=$dir.'/'.$value;  //эту переменную на всякий случай сделал, пробовал её в ссылку вставлять, все равно удаляет
                   //   echo $path; echo '<br>';  // Эта проверка не удаляет
            $pic_on[]='<img src="'.$dir.'/'.$value.'" width="10%" height="10%" >'; // В таком виде для передачи в список, только проценты увеличить
    // print_r($parth_on); echo '<br>';  // эта проверка не удаляет
    // print_r($pic_on);  // эта удаляет
    // var_dump($pic_on);  // эта удаляет
            }
        }  
    $dir='.';
    find_all_files($dir);
Подскажите , пжл, причину и как это обойти.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2019, 12:06
Ответы с готовыми решениями:

Аналог php функций Var_Dump или Print_r в С#
Добрый вечер. Есть ли в С# готовые функции для вывода всего массива в виде: У PHP есть подобные функции: var_dump и print_r,...

Аналог php функций Var_Dump или Print_r в С#
Добрый вечер. Есть ли в С# готовые функции для вывода всего массива в виде: У PHP есть подобные функции: var_dump и print_r,...

Есть в JS или JQ альтернатива print_r() или var_dump()?
Есть в JS или JQ альтернатива print_r() или var_dump()? или как ещё можно посмотреть что в переменной?

2
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
16.05.2019, 12:17
DyadyaGe, ни print_r, ни var_dump ничего не удаляют, так что поищите внимательнее, что именно удаляет пустые папки.
Для рекурсивного обхода директорий используйте RecursiveDirectoryIterator
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
16.05.2019, 12:25  [ТС]
Цитата Сообщение от Пифагор Посмотреть сообщение
ни print_r, ни var_dump ничего не удаляют, так что поищите внимательнее, что именно удаляет пустые папки.
Так я потому на форум и написал, что сам не вижу, и понимаю, что как минимум в мануалах ничего подобного не написано про удаление. Код коротенький. Хотелось бы, чтоб проверили вы и подсказали где корень так сказать "зла". Ну а про итераторы мне пока рановато думать, я новичок.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2019, 12:25
Помогаю со студенческими работами здесь

Вчем разница между Print_r и var_dump
Доброе утро, подскажите в чем разница между Print_r и var_dump ? что лучшие использовать ?

Как удалить пустые папки, названия которых имеют 4 или 5 цифр?
А подскажите код, как удалить пустые папки названия которых имеют 4 или 5 цыфр. Например есть пустая папка &quot;Фото&quot;,...

Подскажите плз аналог php функции print_r, или как преобразовать массив в string?
Может кто сталкивался...

Почему не выводит print_r($_GET);
хочу посмотреть все гет запросы но получаю только пустой массив

Как узнать кто удаляет файлики и папки?
Добрый день! Проблема в следующем - имеется доменная сеть, много-много пользователей и файловый сервер - папки организованны с доступом по...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru