СКРИПТЫ alt phpjshtmlcssblog
ТЕГИ:
php (267)
js (136)
html (132)
css (98)
html tags (58)
edit text (37)
jquery (36)
form html (29)
php array (28)
foto (23)
fonts (22)
forum (19)
atom (18)
html book (17)
board (17)
Показать еще :
js method (16)
svg (16)
hosting (15)
php file (15)
color (14)
osclass (13)
htaccess (13)
ruweb.net (13)
table (12)
path (12)
icon (11)
php date (11)
online (11)
info (11)
js delete (11)
notepad (11)
yandex (11)
input (11)
php img (10)
url (10)
jsphp (10)
form (8)
cookie (7)
task (7)
php url (7)
comment (7)
ftp (6)
click (6)
js url (6)
value (5)
reg.ru (5)
mb (5)
adminka (5)
js id (4)
select (4)
search (4)
bbcode (4)
js copy (4)
js form (4)
iframe (3)
js time (3)
vs code (3)
captcha (3)
vk (3)
ukoz (2)
browser (2)
dosite (2)
seo (2)
tag hr (2)
js post (2)
sitemap (2)
console (2)
header (1)
domen (1)
smile (1)
ssl (1)
books (1)
numbers (1)
archive (1)

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

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

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

  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

    )

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

Пользуйтесь на здоровье! Не забудьте сказать спасибо
Название скрипта :Убрать точки при сканировании папки (с начала файла)
Ссылка на скачивание : Все скрипты на одной странице
Теги :
виртуальная директория
удаление виртуальные директории
ячеек массива с точками виртуальные директории

Сообщение системы комментирования :

01.09.2021

Форма пока доступна только админу... скоро все заработает...надеюсь...

Последние комментарии :
Марат :
17.10.2021 39:28
Давно не делал и страницу и видео в один день... чет, как-то выжитый как…
подробнее.
Марат :
10.10.2021 17:20
Добавлен новый смайл
подробнее.
Марат :
05.10.2021 26:37
Страница sitemap.html восстановлена. Но будут вводиться только страницы…
подробнее.
Марат :
04.10.2021 38:22
Добавил несколько вариантов поставить смайл на страницу своего сайта! 3 варианта! Кроме варианта скачать…
подробнее.
Марат :
17.09.2021 28:02
Установка Яндекс поиск на сайт! Контент обновлен на 100%. Такое ощущение, что старый текст не я…
подробнее.
Марат :
07.09.2021 23:21
Частенько приходится исправлять ошибки и вот...как-то я обратил внимание на надпись: "нажми ctrl enter" на сайте и…
подробнее.