Полюбите код! И он полюбит Вас!

Последние комментарии:

Марат : Для этого и делали! Рад, что помог! Приходите ещё! далее

2018-02-16 20:31:51



Виктор : Спасибо! Очень полезная статья. Нужно было очистить всю базу данных, далее

2018-02-16 20:30:13



Евгений : Спасибо за перевод sublime!!!! далее

2018-02-15 16:42:05



Марат : Вообще, после написания статьи - у них вышло обновление, может далее

2018-02-13 19:19:01



Сергей : Доброе время суток!После правки кода, капчи вообще нет! Ни старой, далее

2018-02-13 19:10:15



Это интересно:

Рейтинги страниц.

Вы здесь - Главная - PHP - массивы

Сравнить папки php

сравнить папки на сайте php отличие

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

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

Для чего вообще может пригодиться данный скрипт!? Ну, к примеру, у вас есть список файлов и собственно папка с файлами - вопрос, как их сравнить!? Ну вот здесь практически мы и подошли к этому вопросу, осталось совсем немного статей, чтобы решить данную задачку!

Поскольку, мы уже один раз сканировали нашу папку на содержание файлов, то не нужно изобретать велосипед, и мы воспользуемся данным кодом:

<?php

$dir = '/home/директория';

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

$arr = $file;

for($i = 0; $i < count($arr); $i++)

{

echo $arr[$i]."<br />\n";

}

?>

И далее нам нужны две папки, которые мы будем сранивать!

Первая, Вторая.

Я для наглядности сделал, чтобы отличался только первый файл!

И для того, чтобы увидеть списки из файлов, которые будут сравниваться:

Первый:

.

..

Elitsin-alkash.html

Gorbachev-goret-tebe-v-adu.doc

Gorbachev-predatel.html

Gorbachev-prodal-rodinu.txt

Gorbachev-razvalil-SSSR.php

Второй:

.

..

Elitsin-Brat-Gorbacheva.html

Gorbachev-goret-tebe-v-adu.doc

Gorbachev-predatel.html

Gorbachev-prodal-rodinu.txt

Gorbachev-razvalil-SSSR.php

И на самом далее - это настоящая магия! Сейчас практически невозможно сравнить, в данных папках содержание, если не смотреть на списки…

а сейчас в них не более 10 файлов! А представьте себе если файлов будет 500!?

Далее возьмем наш код, и его нужно повторить два раза, чтобы отсканировать две директории, т.е. папки. Естественно, что меняем путь да нашей директории. И втрое, изменим

$arr = $file;

Первое можно оставить и так, а вот вторую запись надо изменить, потому, что нам нужны две разные переменные.

$arr = $file1;

Создадим переменную $result

Далее нам понадобится функция array_diff

И сравним две переменные ($file, $file1

И сделаем выво с помощью foreach:

<?php

$result = array_diff ($file, $file1); // чего нет во втором массиве

echo "чего нет во втором массиве<br><br>";

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

{

echo "$value <br>\n";


}

echo " чего нет в первом массиве<br><br>";

$result1 = array_diff ($file1, $file); // чего нет в первом массиве

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

{

echo "$value <br>\n";

}

?>

Здесь нужно отметить, что я предпочитаю разные части разных скриптов не объединять вместе, иначе просто запутываешься, что к чему относится…

Не забываем, что два слеша – это закомментированная строка…т.е. её не будет видно...

Соединим весь код вместе и получим:

<?php

$dir = '/home/директория1';

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

$arr = $file;

for($i = 0; $i < count($arr); $i++)

{

//echo $arr[$i]."<br />\n";

}

?>

<?php

$dir = '/home/директория -2/';

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

$arr = $file;

for($i = 0; $i < count($arr); $i++)

{

//echo $arr[$i]."<br />\n";

}

?>

<?php

$result = array_diff ($file, $file1); // чего нет во втором массиве

echo "чего нет во втором массиве : ";

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

{

echo "$value <br>\n";

}

echo " чего нет в первом массиве : ";

$result1 = array_diff ($file1, $file); // чего нет в первом массиве

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

{

echo "$value <br>\n";

}

?>

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

чего нет во втором массиве : Elitsin-alkash.html

чего нет в первом массиве : Elitsin-Brat-Gorbacheva.html

Скопировать коды.

Понравилась статья!? Не стесняйся – поделись ссылкой!

И!

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

P.S.

25 октября 2017

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

Почему стоит подписаться на наши новости!?

Расскажу историю, вчера искал ответ на один из вопросов (конечно, я могу и сам написать, но чаще всего, вначале, ищу в интернете, может есть готовое решение…) и было множество вариантов, которые были описаны, но ни одного, с примерами! И мало того, что они предлагают решения, которые непонятно как реализовывать, особенно новичкам, у которых больше вопросов, чем ответов. Так они еще и не работают!

У нас же, на сайте – только рабочие проверенные скрипты! Полностью с описанием и с примерами! И реализовать может человек с нулевыми знаниями!

Мы есть здесь:

Проголосовать за статью!
  С 24 сентября мы запускаем новый скрипт в тестовом режиме (только свои скрипты)
  Вы можете проголосовать за понравившуюся статью.

  Еще никто не проголосовал
    


Просмотров 489

Друзья!

Для того, чтобы вы получили бесплатную информацию, мы потратили и время и деньги!

Мы существуем от кликов по рекламе!

Если вы не нашли подходящего блока объявлений, то вы еще можете помочь проекту!

Не стесняйтесь!

Даже самая маленькая сумма будет употреблена на продвижение и улучшение проекта!

Заранее благодарим Вас!

Оставить комментарий:

Для отображения аватара после отправки сообщения, необходимо быть зарегистрированным в Граватаре.



Комментарии

Комментариев пока нет.

* Обязательные поля
(Не публикуется)
 
Жирный Курсив Подчеркнутый Перечеркнутый Степень Индекс Код PHP Код Кавычки Вставить линию Вставить маркированный список Вставить нумерованный список Вставить ссылку Вставить e-mail Вставить изображение Вставить видео
 
Улыбка Печаль Удивление Смех Злость Язык Возмущение Ухмылка Подмигнуть Испуг Круто Скука Смущение Несерьёзно Шокирован
 
5000
Напишите слово грот наоборот.
 
(введите ответ)
 
Уведомлять о новых коментариях по почте.
 

Оставить комментарии через вконтакте

Все дела сделаны!

Теперь можно и поиграть!

Понравилась игра!? Растфнуть на весь экран

Улучши поведенческий фактор на своём сайте.

Забери код здесь

Пишем полную инструкцию о пользовании ruweb.net + DirectAdmin

RuWeb.net - гибкий хостинг
Индекс цитирования