Поддержка серверов

CopyDirFiles: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=162055

//    CopyDirFiles()
//    /bitrix/modules/main/tools.php:2531

function CopyDirFiles($path_from, $path_to, $ReWrite = True, $Recursive = False, $bDeleteAfterCopy = False, $strExclude = "")
{
    if (strpos($path_to."/", $path_from."/")===0 || realpath($path_to) === realpath($path_from))
        return false;

    if (is_dir($path_from))
    {
        CheckDirPath($path_to."/");
    }
    elseif(is_file($path_from))
    {
        $p = bxstrrpos($path_to, "/");
        $path_to_dir = substr($path_to, 0, $p);
        CheckDirPath($path_to_dir."/");

        if (file_exists($path_to) && !$ReWrite)
            return False;

        @copy($path_from, $path_to);
        if(is_file($path_to))
            @chmod($path_to, BX_FILE_PERMISSIONS);

        if ($bDeleteAfterCopy)
            @unlink($path_from);

        return True;
    }
    else
    {
        return True;
    }

    if ($handle = @opendir($path_from))
    {
        while (($file = readdir($handle)) !== false)
        {
            if ($file == "." || $file == "..")
                continue;

            if (strlen($strExclude)>0 && substr($file, 0, strlen($strExclude))==$strExclude)
                continue;

            if (is_dir($path_from."/".$file) && $Recursive)
            {
                CopyDirFiles($path_from."/".$file, $path_to."/".$file, $ReWrite, $Recursive, $bDeleteAfterCopy, $strExclude);
                if ($bDeleteAfterCopy)
                    @rmdir($path_from."/".$file);
            }
            elseif (is_file($path_from."/".$file))
            {
                if (file_exists($path_to."/".$file) && !$ReWrite)
                    continue;

                @copy($path_from."/".$file, $path_to."/".$file);
                @chmod($path_to."/".$file, BX_FILE_PERMISSIONS);

                if($bDeleteAfterCopy)
                    @unlink($path_from."/".$file);
            }
        }
        @closedir($handle);

        if ($bDeleteAfterCopy)
            @rmdir($path_from);

        return true;
    }

    return false;
}

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение