示例#1
0
 #-------------------------------------------------------------------------------
 if (isset($Answer['Added'])) {
     #-------------------------------------------------------------------------------
     foreach ($Answer['Added'] as $Added) {
         #-------------------------------------------------------------------------------
         $File = $Added['File'];
         #-------------------------------------------------------------------------------
         echo SPrintF("Обновление файла (%s)\n", $File);
         #-------------------------------------------------------------------------------
         $Path = SPrintF('%s/%s', SYSTEM_PATH, $File);
         #-------------------------------------------------------------------------------
         if (File_Exists($Path)) {
             #-------------------------------------------------------------------------------
             SPrintF('Проверка прав на запись файла (%s)', $Path);
             #-------------------------------------------------------------------------------
             if (!Is_Writable($Path)) {
                 return SPrintF("ERROR: недостаточно прав на запись файла (%s)\n", $Path);
             }
             #-------------------------------------------------------------------------------
         }
         #-------------------------------------------------------------------------------
         if ($Commit) {
             #-------------------------------------------------------------------------------
             $IsWrite = IO_Write($Path, Base64_Decode($Added['Source']), TRUE);
             if (Is_Error($IsWrite)) {
                 return SPrintF("ERROR: не возможно обновить файл (%s)\n", $Path);
             }
             #-------------------------------------------------------------------------------
         }
         #-------------------------------------------------------------------------------
     }
示例#2
0
文件: IO.php 项目: carriercomm/jbs
function IO_Write($Path, $Data, $IsRewrite = FALSE, $Wait = 3)
{
    /******************************************************************************/
    $__args_types = array('string', 'string', 'boolean', 'integer');
    #-------------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /******************************************************************************/
    Debug(SPrintF('[IO_Write]: запись в файл (%s)', $Path));
    #-------------------------------------------------------------------------------
    if (File_Exists($Path)) {
        #-------------------------------------------------------------------------------
        $Start = Time() + $Wait;
        #-------------------------------------------------------------------------------
        do {
        } while (!Is_Writable($Path) && Time() < $Start);
        #-------------------------------------------------------------------------------
    } else {
        #-------------------------------------------------------------------------------
        $Folder = DirName($Path);
        #-------------------------------------------------------------------------------
        if (!File_Exists($Folder)) {
            #-------------------------------------------------------------------------------
            Debug(SPrintF('[IO_Write]: создание директории (%s)', $Folder));
            #-------------------------------------------------------------------------------
            if (!@MkDir($Folder, 0777, TRUE)) {
                return ERROR | @Trigger_Error(SPrintF('[IO_Write]: не возможно создать директорию (%s)', $Folder));
            }
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    $File = @Fopen($Path, $IsRewrite ? 'w' : 'a');
    if (!$File) {
        return ERROR | @Trigger_Error('[IO_Write]: ошибка открытия файла');
    }
    #-------------------------------------------------------------------------------
    if (!@Fwrite($File, $Data)) {
        return ERROR | @Trigger_Error('[IO_Write]: ошибка записи в файл');
    }
    #-------------------------------------------------------------------------------
    if (!@Fclose($File)) {
        return ERROR | @Trigger_Error('[IO_Write]: ошибка закрытия файла');
    }
    #-------------------------------------------------------------------------------
    # почему закомменчено - не знаю. так было.
    #if(Preg_Match('/\/tmp\//',$Path))
    #	if(!@ChMod($Path,0666))
    #		@Trigger_Error('[IO_Write]: ошибка установки прав на файл');
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    return TRUE;
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
}
示例#3
0
 function ProcessDirectory($Directory, $Options = False)
 {
     $bRecursive = $Options;
     /*if(Is_Bool($Options)) $bRecursive = $Options;
     		elseif(Is_Numeric($Options)) $IntDeep = $Options; // 0 - unlim
     		elseif(Is_Array($Options)){
     			$IntDeep = ArrayValue('Deep', $Options, '0');
     			$bRecursive = ArrayValue('Recursive', $Options, False);
     		}*/
     if (!is_dir($Directory)) {
         return False;
     }
     $List = array();
     $Handle = opendir($Directory);
     while (False !== ($File = ReadDir($Handle))) {
         $Path = $Directory . DS . $File;
         if ($File == '.' || $File == '..' || !file_exists($Path)) {
             continue;
         }
         if (is_dir($Path) && $bRecursive) {
             $NextDirectory = ProcessDirectory($Path, True);
             if (is_array($NextDirectory)) {
                 $List = array_merge($List, $NextDirectory);
             }
         } else {
             $Entry = new StdClass();
             $Entry->Filename = $File;
             $Entry->Directory = $Directory;
             $Entry->Modtime = filemtime($Path);
             if (!is_dir($Path)) {
                 // files
                 $Entry->Size = FileSize($Path);
             } else {
                 // directories
                 $Entry->IsWritable = Is_Writable($Path);
                 $Entry->bDirectory = True;
             }
             $List[] = $Entry;
         }
     }
     closedir($Handle);
     return $List;
 }
示例#4
0
 function prepare_cache_file()
 {
     // Prepare Cache file
     if (!Is_Dir($this->cache_dir_path) && !Is_File($this->cache_dir_path) && Is_Writable(DirName($this->cache_dir_path))) {
         MkDir($this->cache_dir_path);
         ChMod($this->cache_dir_path, 0755);
     }
     if (Is_Dir($this->cache_dir_path) && Is_Writable($this->cache_dir_path)) {
         Touch($this->cache_file_path);
     }
 }