ГЛАВНАЯ | HTML | CSS | PHP | JS | ЕЩЁ |

Точки в массиве Виртуальные директории удаление ячеек массива с точками

Начнём с предисловия, которое я вынужден написать! Это довольно странная тема, потому, что сформировать ключевые слова практически было невозможно и соответствующий сервис мне не помог! И насколько важна, и нужна данная тема - под вопросом! Но! Одно несомненно, что в изучении PHP – это полезная тема! И второе – какую бы вы задачку в php вы бы не решали – это приближает вас к новым знаниям! А как известно “знание – сила”!

В прошлый раз из разбирали одну из тем посвященных массивам!

И если вы посмотрите на отображение содержание папки, чтобы вы не ходили на другую страницу еще раз, то выведем содержание папки над которой мы будем периодически издеваться, то сделаем вывод данной папки здесь и сделаем другим цветом, чтобы это было понятно:

.

..

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

И здесь мы видим, что две ячейки массива, который вывден на экран равны: 1 = “.” А второй = “..”.

Что это за две ячейки непонятные и что они делают у нас на экране!?

“.” и “...” - Это две виртуальные директории, которые имеются в каждом каталоге файловой системы. Они представляют текущий каталог и родительский каталог соответственно.

Мы решили сделать ещё вариант № 2 Вариант №1

Это конечно очень интересно! НО! Мне они не нужны в принципе и честно сказать они меня раздражают и поэтому мы сегодня удалим их! Чтобы мы эти виртуальные директории просто не видели!

Нам понадобятся несколько функций

Пример использования - array_values

Применяет фильтр к массиву, используя функцию обратного вызова.

И..

Пример использования array_filter

возвращает индексный массив, содержащий все значения массива input.

Давайте разберем предыдущий код, который выводит нам массив в виде строк:

Если видим два слеша, то это закомментировано и не будет отображаться на экране…

Мы взяли некую директорию, в которой нам нужно было просканировать файлы. И далее можем вывести список как массив, либо как список.

<?php

$dir = '/home/… '; #Указываем директорию, которую надо отобразить на экране

$file = scandir($dir); #Сканируем содержимое указанной директории

//print_r($file)."<br>"; #Выводим список на экран

foreach($file as $value) // вывод массива как список

{

echo "$value <br>\n";

}

?>

И далее создадим еще одну переменную и приравняем её к верхней переменной $file.

$arr = $file;

Далее нам нужно применить функции array_values и array_filter к новому массиву, пропустим её через функцию, произвольного названия $e, и вернем наш массив в полном составе, кроме той ячейки массива, в которой будет присутствовать точка –

return $e != "."

Полностью это будет выглядеть так:

$arr = array_values(array_filter($arr, function($e) { return $e != "."; }));

Но ведь у нас есть вторая ячейка и соответствующая строчка в которой присутствуют две точки! Нам нужно повторить предыдущую запись, изменив в фильтре одну точку на две.

$arr = array_values(array_filter($arr, function($e) { return $e != ".."; }));

И соединим все вместе и сделаем вывод:

<?php

$arr = $file;

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

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

//var_dump($arr); // вывод массива без точек

foreach($arr as $value)

{

echo "$value <br>\n";

}

?>

Смотрим результат работы нашего скрипта:

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

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

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

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

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

<?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

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

Посмотреть пример и скачать можно по ниже идущей ссылке

Скрипт № 26.9
Название скрипта и номер :Убрать точки при сканировании папки
Пример - Убрать точки при сканировании папки
Скачать - архив
Все скрипты на одной страницеС вашими куками, что-то не то..., попробуете перезагрузить страницу..

Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2019