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

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

16.05.2019, 12:06. Показов 822. Ответов 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
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru