Удаляем указанную папку на сервере средствами php

В продолжении темы https://yavasilek.ru/raspakovka-arxiva-na-servere-sredstvami-php/
В прошлом посте мы узнали о методе распаковки архива на сервере.
Теперь давайте разберем как удалить указанную папку на сервере. Понятное дело, что папку можно удалить и подключившись FTP, но порою у нашей папки сложная структура с большим кол-вом вложений у удаление при подключение через FTP очень сильно затягивается.
Итак для удаления папок на сервере необходимо использовать следующую функцию:

function RemoveDir($path)
{
	if(file_exists($path) && is_dir($path))
	{
		$dirHandle = opendir($path);
		while (false !== ($file = readdir($dirHandle))) 
		{
			if ($file!='.' && $file!='..') 
			{
				$tmpPath=$path.'/'.$file;
				chmod($tmpPath, 0777);
				
				if (is_dir($tmpPath))
	  			{  // если папка
					RemoveDir($tmpPath);
			   	} 
	  			else 
	  			{ 
	  				if(file_exists($tmpPath))
					{
	  					unlink($tmpPath);
					}
	  			}
			}
		}
		closedir($dirHandle);
		if(file_exists($path))
		{
			rmdir($path);
		}
	}
	else
	{
		echo "Папка не найдена";
	}
}

Что бы использовать приведенную функцию необходимо передать ей адрес папки к примеру вот так:

$DeletedFolder='/folder';
RemoveDir($_SERVER['DOCUMENT_ROOT'].$DeletedFolder);

Если скрипт подвисает, то значит, что у Вас огромное кол-во папок и файлов — просто обновите страницу и скрипт продолжит удалять ))

Уменьшения log файла ms sql

Возникла проблема. Очень вырос log файл одной из баз.

Забекапить лог и шинкануть его — не давало никакого результата. Как оказалось, у данной базы была включена репликация, но никуда ничего не реплицировалось. Для того что бы узнать включена ли репликация необходимо выполнить команду

DBCC OPENTRAN

У меня она выводит следующую информацию

ransaction information for database 'имя базы'.

Replicated Transaction Information:
        Oldest distributed LSN     : (0:0:0)
        Oldest non-distributed LSN : (17444:25:1)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Для решения проблемы необходимо выполнить скрипт

Execute SP_ReplicationDbOption [имя базы],Publish,true,1
GO
Execute sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
GO
DBCC ShrinkFile([имя лога],0)
GO
Execute SP_ReplicationDbOption [имя базы],Publish,false,1
GO
backup log [имя базы] with truncate_only
GO
dbcc shrinkfile(2, truncateonly)
GO

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

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

Как вытащить видео из презентации ppt?

Дали мне тут презентацию и сказали, что в ней есть видео и это видео надо выдернуть.

Без проблем. Меняем расширение документа на zip. Распаковываем документ и в структуре папок находим нужное видео

Автозагрузка в Windows 8

В Windows 8 разработчики немного усложнили добавление программ в автозагрузку. Для того что-бы быстро открыть папку автозагрузки достаточно ввести

%AppData%\Microsoft\Windows\Start Menu\Programs\Startup

Hyper Electronics Mappers

Понадобилось мне на днях просмотреть видео с камер в офисе. Видео регистратор оказался фирмы Acumen.

Долго я не мог понять как подключиться удаленно к видеорегистратору  На телефоне все просто — программа так и называется Acumen Air. А вот по поводу просмотра с компьютера … тут пришлось попотеть прежде чем я определил, что нужна программа Hyper Electronics Mappers. И тут начался квест №2

Где найти эту программу. На форуме разработчиков они уверяют, что программу отправляют на мыло, но на почте я ничего так и не нашел. В общем ползая по ftp серверу разработчика я обнаружил программу Acumen CMS, так вот это и оказалась Hyper Electronics Mappers