В связи с переходом на новый движок... возможны сбои в работе! Простите!
Работы производятся прямо сейчас 19-03-2024! 🞨
Меню :
php (329)



Blog (1392)
php (329)
js (244)
html (147)
css (131)
html tags (62)
js tag (56)
jquery (42)
text (37)
js method (36)
php array (33)
js date (33)
form html (30)
online (29)
Показать еще :
fonts (26)
ruweb.net (25)
foto (22)
php file (20)
atom (20)
forum (19)
hosting (18)
svg (18)
input (18)
php date (17)
board (16)
php time (16)
html book (16)
color (15)
info (15)
img (14)
js time (14)
js url (14)
js events (14)
htaccess (13)
select (13)
notepad (13)
osclass (13)
keyboard (12)
знак (12)
dw block (12)
php img (12)
php path (12)
table (12)
download (12)
icon (11)
form (11)
jsphp (11)
alphabet (10)
keyframes (10)
js delete (10)
yandex (10)
mouse (10)
chart (9)
hover (9)
dosite (8)
browser (8)
php post (7)
comment (7)
php url (7)
iframe (6)
php get (6)
mysql (6)
click (6)
list (6)
canvas (6)
adminka (6)
vs code (6)
js id (5)
mb (5)
heading (5)
value (5)
reg.ru (5)
ftp (5)
year (5)
js math (5)
tag a (5)
bbcode (4)
php var (4)
base64 (4)
xml (4)
scandir (4)
games (4)
flags (4)
symbols (4)
week (4)
day (4)
ssl (4)
нок (4)
submit (4)
task (4)
vk (4)
month (4)
pages (4)
console (4)
js form (4)
domen (3)
line (3)
https (3)
js post (3)
jquery post (3)
money (3)
numbers (3)
js img (3)
padding (3)
куб (3)
captcha (3)
ucoz (3)
js hash (3)
tag hr (2)
details (2)
typeof (2)
seo (2)
prompt (2)
sitemap (2)
рся (2)
youtube (2)
height (2)
arrows (2)
js vars (2)
counter (2)
google (2)
qr kod (2)
video (2)
speed (1)
smile (1)
нод (1)
rutube (1)
scroll (1)
windows (1)
archive (1)
jino (1)
cursor (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

    no_title.html

    obama_pidurok.html

    strange_names_file.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

    no_title.html

    obama_pidurok.html

    strange_names_file.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] => no_title.html

    [9] => obama_pidurok.html

    [10] => strange_names_file.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] => no_title.html

    [9] => obama_pidurok.html

    [10] => strange_names_file.html

    )


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

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

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

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

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

    <?php 

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

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

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

            echo "$file\n<br>"; 

        } 

    }

    ?>

    Результат:

    Elitsin-alkash.html

    strange_names_file.html

    Gorbachev-prodal-rodinu.txt

    Gorbachev-predatel.html

    Gorbachev-razvalil-SSSR.php

    amerikosyi_kazlyi.txt

    obama_pidurok.html

    Gorbachev-goret-tebe-v-adu.dat

    no_title.html

    Если требуется вернуть значения в новый массив, то добавляем выше цикла $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] => strange_names_file.html

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

    [3] => Gorbachev-predatel.html

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

    [5] => amerikosyi_kazlyi.txt

    [6] => obama_pidurok.html

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

    [8] => no_title.html

    )


  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] => no_title.html

    [7] => obama_pidurok.html

    [8] => strange_names_file.html

    )

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

Не стесняемся говорить спасибо!
Помочь проекту DwWeb.ru

Поделиться ссылкой! C друзьями или врагами!

Этим вы очень поможете проекту! Заранее огромное спасибо!

Ещё : dwweb.ru есть здесь:
ruweb
Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2024 Контакты. Реклама на сайте Лучший хостинг : RUWEB + помощь по RUWEB
Страница загружена за : 0.020329 секунд. Подробнее