Всех друзей поздравляем с Новым годом! Всего вам самого наилучшего! Всех благ, здоровья а материальное приложится!
СКРИПТЫ althtmlcssphpjsblog

Удаление виртуальных директорий ячеек массива с точками

Поддержи проект!!!

При сканировании папки разными способами, и если это массив с названиями, то первые две ячейки массива будут состоять из точек - они называются виртуальные директории! Естественно, что они будут мешаться в случае использования данного массива на сайте! Поэтому мы должны удалить эти точки в массиве!

Все способы удалить две виртуальные директории

  1. Что такое виртуальные директории в массиве после scandir
  2. Удаление виртуальных директорий -> unset
  3. Удаление виртуальных директорий -> array_diff
  4. Удаление виртуальных директорий -> цикл for
  5. Еще способ удаления виртуальных директорий -> array_filter
  6. Скачать можно здесь
  1. Что такое виртуальные директории в массиве после scandir

    Если вы используете scandir для получения файлов в папке, или любым другим способом, то в первых двух ячейках вашего массива получим две виртуальные директории:

    .

    ..

    Elitsin-alkash.html

    Gorbachev-goret-tebe-v-adu.dat

    Gorbachev-predatel.html

    Gorbachev-prodal-rodinu.txt

    Gorbachev-razvalil-SSSR.php

    amerikosyi_kazlyi.txt

    obama_pidurok.html

    Если вы работаете с папкой и массивом, то наверняка понимаете. что они вам будут постоянно мешаться! Поэтому давайте удалим эти виртуальные директории!

  2. Удаление виртуальных директорий -> unset

    Самое простий способ избавиться от виртуальных директорий - это просто удалить две первые ячейки массива

    У нас есть наш массив файлов, который был получен таким образом:

    Получаем путь на сервере, всегда делаю в самом верху страницы и присваиваю это значение переменной:

    $home = $_SERVER['DOCUMENT_ROOT'];

    Заносим в переменную путь до папки, которую будем сканировать:

    $dir = $home.'/__a-data/Z-arhiv/scandir-ili-sodergimoe-v-papke/1/';

    Сканируем помощью scandir

    $file = scandir($dir);

    Выводим с помощью print_r:

    .

    ..

    Elitsin-alkash.html

    Gorbachev-goret-tebe-v-adu.dat

    Gorbachev-predatel.html

    Gorbachev-prodal-rodinu.txt

    Gorbachev-razvalil-SSSR.php

    amerikosyi_kazlyi.txt

    obama_pidurok.html

    Как видим наши виртуальные директории замечательно расположились в ячейки [0] и [1], применим к ним unset:

    unset($file [0]);

    unset($file [1]);

    Результат удаления виртуальных папко с помощью unset

    Array

    (

    [2] => Elitsin-alkash.html

    [3] => Gorbachev-goret-tebe-v-adu.dat

    [4] => Gorbachev-predatel.html

    [5] => Gorbachev-prodal-rodinu.txt

    [6] => Gorbachev-razvalil-SSSR.php

    [7] => amerikosyi_kazlyi.txt

    [8] => obama_pidurok.html

    )

    Если вам требуется упорядочить нумерацию ключей в массиве, то вам понадобится Восстановить нумерацию ключей

  3. Удаление виртуальных директорий -> array_diff

    Следующий способ удалить виртуальные директории использовать array_diff

    Как помним из предыдущего пункта, что в $file мы уже не сможем удалить виртуальные директории, поэтому нам нужно присвоить данный массив новой переменной, чтобы было все по честному:

    $file_1 = $file = scandir($dir);
    Создадим из этих двух виртуальных директорий массив array('..', '.'), далее берем array_diff, первым значением помещаем нашу переменную массив $file_1, а вторым значением виртуальные директории:
    $delit_points = array_diff($file_1 , array('..', '.'));

    Выводим здесь:

    print_r($delit_points);
    Результат удаления виртуальных точек с помощью array_diff

    Array

    (

    [2] => Elitsin-alkash.html

    [3] => Gorbachev-goret-tebe-v-adu.dat

    [4] => Gorbachev-predatel.html

    [5] => Gorbachev-prodal-rodinu.txt

    [6] => Gorbachev-razvalil-SSSR.php

    [7] => amerikosyi_kazlyi.txt

    [8] => obama_pidurok.html

    )

  4. Удаление виртуальных директорий -> цикл for

    Как удалить виртуальные директории с помощью цикла!?

    Открываем папку - opendir.

    Читаем папку – readdir.

    Если папки не равны точкам, то выводим название… через echo:

    <?php 

    $handle = opendir('путь_до _папки');

    while (false !== ($file = readdir($handle))) { 

        if ($file != "." && $file != "..") { 

            echo "$file\n<br>"; 

        } 

    }

    ?>

    Результат:

    Elitsin-alkash.html

    Gorbachev-prodal-rodinu.txt

    Gorbachev-predatel.html

    Gorbachev-razvalil-SSSR.php

    amerikosyi_kazlyi.txt

    obama_pidurok.html

    Gorbachev-goret-tebe-v-adu.dat

    Если требуется вернуть значения в новый массив, то добавляем выше цикла $new_array = array();, а внутрь цикла $new_array[] = $file;

    <?php 

    $new_array = array();

    $handle = opendir('путь_до _папки');

    while (false !== ($file = readdir($handle))) { 

        if ($file != "." && $file != "..") { 

            $new_array[] = $file;

        } 

    }

    ?>

    Результат:

    Array

    (

    [0] => Elitsin-alkash.html

    [1] => Gorbachev-prodal-rodinu.txt

    [2] => Gorbachev-predatel.html

    [3] => Gorbachev-razvalil-SSSR.php

    [4] => amerikosyi_kazlyi.txt

    [5] => obama_pidurok.html

    [6] => Gorbachev-goret-tebe-v-adu.dat

    )

  5. Еще способ удаления виртуальных директорий -> array_filter

    Следующий вариант удаления виртуальных директорий в виде точек используем array_filter + для восстановления нумерации -> array_values, выше я уже давал ссылку

    $arr = $file;// стоит в самом верху. Для того, чтобы мы с каждым массивом могли работать отдельно! - вам этого делать не нужно...

    $arr = array_values(array_filter($arr, function($e) { return $e != "."; }));// вывод массива без первой точки

    $arr = array_values(array_filter($arr, function($e) { return $e != ".."; }));// вывод массива без второй точки

    print_r($arr );

    Результат удаления виртуальных директорий с помощью array_filter

    Array

    (

    [0] => Elitsin-alkash.html

    [1] => Gorbachev-goret-tebe-v-adu.dat

    [2] => Gorbachev-predatel.html

    [3] => Gorbachev-prodal-rodinu.txt

    [4] => Gorbachev-razvalil-SSSR.php

    [5] => amerikosyi_kazlyi.txt

    [6] => obama_pidurok.html

    )

Вот и всё, что я сегодня хотел вам рассказать!


Вас может еще заинтересовать список тем : #PHP | #PHP_FUNCTION |
Последняя дата редактирования : 2020-03-08 05:03
Название скрипта :Убрать точки при сканировании папки
Скрипт № 25.7Ссылка на скачивение: Все скрипты на одной странице
Теги:
виртуальная директорияудаление виртуальные директории ячеек массива с точками виртуальные директории

Последние комментарии :
admin :
21/05/2020 05:03
Я Вас помню! Вы частенько оставляли сообщения на сайте!Все никак не мог спросить!? У Вас есть сайт -> зачем это…
подробнее.
Паула :
21/05/2020 04:48
Вообще мне очень нравится, что вы делаете! И ваш подход! И ваш стиль!И не обращайте внимание на всяких…
подробнее.
admin :
20/05/2020 10:36
Как бы смешно это не звучало! Но! Запускается новая система комментирования COMMENTS+ 1.5. в тестовом режиме!От…
подробнее.

НАШИ ПРОЕКТЫ : Проекты находятся в разной степени готовности (просто их столько, что времени не хватает…) Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2020 Мы на лучшем хостинге -> ruweb