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

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

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

Author24 — интернет-сервис помощи студентам
Написал функцию для поиска файлов. Вроде бы работает хорошо. На её основе написал функции поиска по типу файла, поиск пустых папок, построение списка с превьюшкой для полученных результатов. Был всем доволен пока не вернулся случайно к функции поиска файлов. У меня все функции собраны в одном файле и вызываются кнопкой. Случайно нажал и заметил, что пустые папки удалились. Пока не взялся за написание функции для поиска пустых папок, я таковые не создавал, потому видимо раньше и не замечал такое поведение. Помучавшись, вырезал функцию в отдельный файл и там после ряда проверок выяснил, что удаляет папки либо после проверки 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2019, 12:06
Ответы с готовыми решениями:

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

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

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

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

2
2170 / 1653 / 840
Регистрация: 10.01.2015
Сообщений: 5,192
16.05.2019, 12:17 2
DyadyaGe, ни print_r, ни var_dump ничего не удаляют, так что поищите внимательнее, что именно удаляет пустые папки.
Для рекурсивного обхода директорий используйте RecursiveDirectoryIterator
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 823
16.05.2019, 12:25  [ТС] 3
Цитата Сообщение от Пифагор Посмотреть сообщение
ни print_r, ни var_dump ничего не удаляют, так что поищите внимательнее, что именно удаляет пустые папки.
Так я потому на форум и написал, что сам не вижу, и понимаю, что как минимум в мануалах ничего подобного не написано про удаление. Код коротенький. Хотелось бы, чтоб проверили вы и подсказали где корень так сказать "зла". Ну а про итераторы мне пока рановато думать, я новичок.
0
16.05.2019, 12:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2019, 12:25
Помогаю со студенческими работами здесь

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

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

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

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

Как удалить пустые папки и файлы?
Для папок нашёл решение: static string str1 = Path.GetTempPath(); public static void...

Найти папки с заданным именем, удалить старые файлы и пустые папки
добрый день помогите написать маленький скриптик 1. найти папки с именем &quot;папка обмена&quot; в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru