<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414787&amp;view=findpost&amp;p=3807865</guid>
        <pubDate>Thu, 22 Aug 2019 16:13:39 +0000</pubDate>
        <title>print_r или var_dump удаляет пустые папки. Как и почему?</title>
        <link>https://forum.sources.ru/index.php?showtopic=414787&amp;view=findpost&amp;p=3807865</link>
        <description><![CDATA[Serafim: 1) Для удобного поиска файлов есть symfony/finder<br>
2) Для не очень удобного есть glob и DirectoryIterator<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">var_dump(glob(__DIR__ . &#39;/*.php&#39;));</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Serafim</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414787&amp;view=findpost&amp;p=3807235</guid>
        <pubDate>Thu, 15 Aug 2019 20:54:07 +0000</pubDate>
        <title>print_r или var_dump удаляет пустые папки. Как и почему?</title>
        <link>https://forum.sources.ru/index.php?showtopic=414787&amp;view=findpost&amp;p=3807235</link>
        <description><![CDATA[Костик+: 1) Почему-то обратил внимание, что в основном удаляет ссылаясь на глобальную переменную &#036;pic_on. Попробовал бы сделать print_r(&#036;pic_on); сразу после их объявления, посмотреть, что там внутри<br>
2) Попробуйте закомментировать весь блок foreach и сделать print_r(&#036;pic_on); сразу после global &#036;pic_on; global &#036;parth_on;<br>
3) Попробуйте закомментировать весь блок foreach и выполнить код <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function find_all_files($dir)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;global $pic_on;</div><div class="code_line">&nbsp;&nbsp; &nbsp;global $parth_on;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$root = scandir($dir);</div><div class="code_line">&nbsp;&nbsp; &nbsp;$pic_on[] = &#39;&#60;img src=&quot;./.&quot; width=&quot;10%&quot; height=&quot;10%&quot; &#62;&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$pic_on[] = &#39;&#60;img src=&quot;./..&quot; width=&quot;10%&quot; height=&quot;10%&quot; &#62;&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp;print_r($pic_on);</div><div class="code_line">}</div><div class="code_line">$dir=&#39;.&#39;;</div><div class="code_line">find_all_files($dir);</div></ol></div></div></div></div><br>
<br>
4) Попробуйте заменить код foreach(&#036;root as &#036;value) на foreach(&#036;root as &#036;key =&gt; &#036;value)<br>
5) Пеменную &#036;parth_on, скорее всего, хотели назвать по другому: или &#036;part_on, или &#036;path_on.<br>
<br>
В общем-то подебажил: потестировал разные гипотезы.]]></description>
        <author>Костик+</author>
        <category>PHP</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=414787&amp;view=findpost&amp;p=3798183</guid>
        <pubDate>Mon, 06 May 2019 13:53:57 +0000</pubDate>
        <title>print_r или var_dump удаляет пустые папки. Как и почему?</title>
        <link>https://forum.sources.ru/index.php?showtopic=414787&amp;view=findpost&amp;p=3798183</link>
        <description><![CDATA[D-G: Написал функцию для поиска файлов. Вроде бы работает хорошо. На её основе написал функции поиска по типу файла, поиск пустых папок, построение списка с превьюшкой для полученных результатов. Был всем доволен пока не вернулся случайно к функции поиска файлов. У меня все Функции собраны в одном файле и вызываются кнопкой. Случайно нажал и заметил, что пустые папки удалились. Пока не взялся за написание функции для поиска пустых папок, я таковые не создавал, потому видимо раньше и не замечал такое поведение. Помучавшись, вырезал функцию в отдельный файл и там после ряда проверок выяснил, что удаляет папки либо после проверки print_r или var_dump массива, ответственного за хранение ссылок на картинки превью, либо после пробы вывести превью. Причем проверки срабатывают, превью выводится, а пустые папки удаляются. С другими функциями, написанными на основе этой такого нет. Почему такое происходит понять не могу. Вроде нигде не написано. что подобное может удалять папки, да и вообще что-либо. В мануалах только про rmdir написано. Она то может удалять именно пустые папки, потому и функция под это пишется легко, но тут то я её не вызываю.<br>
Код вот такой:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">function find_all_files($dir)</div><div class="code_line">&nbsp;&nbsp; {</div><div class="code_line">global $pic_on; global $parth_on;</div><div class="code_line">&nbsp;&nbsp; &nbsp;$root = scandir($dir);</div><div class="code_line">&nbsp;&nbsp;foreach($root as $value) // перебираем</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if($value === &#39;.&#39; || $value === &#39;..&#39;) {continue;} // пропускаем</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(is_dir($dir.&#39;/&#39;.$value)) &nbsp;find_all_files($dir.&#39;/&#39;.$value); // если директория, то продолжаем сканировать</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(is_dir($dir.&#39;/&#39;.$value)) &nbsp;continue;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$parth_on[] = $dir.&#39;/&#39;.$value;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$path=$dir.&#39;/&#39;.$value; &nbsp;//эту переменную на всякий случай сделал, пробовал её в ссылку вставлять, все равно удаляет</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // &nbsp; echo $path; echo &#39;&#60;br&#62;&#39;; &nbsp;// Эта проверка не удаляет</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$pic_on[]=&#39;&#60;img src=&quot;&#39;.$dir.&#39;/&#39;.$value.&#39;&quot; width=&quot;10%&quot; height=&quot;10%&quot; &#62;&#39;; // В таком виде для передачи в список, только проценты увеличить</div><div class="code_line">// print_r($parth_on); echo &#39;&#60;br&#62;&#39;; &nbsp;// эта проверка не удаляет</div><div class="code_line">// print_r($pic_on); &nbsp;// эта удаляет</div><div class="code_line">// var_dump($pic_on); &nbsp;// эта удаляет</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;} &nbsp;</div><div class="code_line">$dir=&#39;.&#39;;</div><div class="code_line">find_all_files($dir);</div></ol></div></div></div></div><br>
Подскажите , пжл, причину и как это обойти.]]></description>
        <author>D-G</author>
        <category>PHP</category>
      </item>
	
      </channel>
      </rss>
	