/var/www/hkosl.com/batfile/batfile_process.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
error_reporting
(0);
ini_set('display_errors'0);


$path $_POST['path'];

if(empty(
$path)){
    exit(
"Please input path");
}

if(empty(
$_FILES['new_file']['tmp_name'])){
    exit(
"Please upload new file");
}

if(empty(
$_FILES['old_file']['tmp_name'])){
    exit(
"Please upload old file");
}


$new_file $_FILES['new_file']['tmp_name'];
$old_file $_FILES['old_file']['tmp_name'];

$new = array();
$old = array();


$handle = @fopen($new_file'r');
if(
$handle){
    while ((
$buffer fgets($handle)) !== false) {
        
// $tmp = iconv(mb_detect_encoding($buffer, mb_detect_order(), true), "UTF-8", $buffer);
        
$line iconv("ASCII""UTF-8"$buffer);
        
// $line = preg_replace('/[^\x{0000}-\x{007F}]/u', '', $line);
        
$line preg_replace('/[[:^print:]]/'''$line); // should be aA
        // $string = preg_replace('/[\x00-\x1F\x7F]/', '', $string);
        
if($line) {
            
$sid_idx strpos($line'S-');
            if(
$sid_idx !== false) {
                
$name substr($line0,$sid_idx);
                
$name str_replace(' '''$name);
                
$sid substr($line$sid_idx);
                
$sid str_replace(' '''$sid);

                
// $name = substr($line, 0, 15);
                // $name = str_replace(' ', '', $name);
                //
                // $sid = substr($line, 15);
                // $sid = str_replace(' ', '', $sid);

                
if ( ! empty($name) && ! empty($sid)) {
                    
$new[$name] = $sid;
                }
            }
        }
    }
    
fclose($handle);
}

$handle = @fopen($old_file'r');
if(
$handle){
    while ((
$buffer fgets($handle)) !== false) {
        
// $tmp = iconv(mb_detect_encoding($buffer, mb_detect_order(), true), "UTF-8", $buffer);
        
$buffer = (string)$buffer;
        
$line iconv("ASCII""UTF-8"$buffer);
        
$line preg_replace('/[[:^print:]]/'''$line); // should be aA
        
if($line) {
            
$sid_idx strpos($line'S-');
            if(
$sid_idx !== false) {
                
$name substr($line0,$sid_idx);
                
$name str_replace(' '''$name);
                
$sid substr($line$sid_idx);
                
$sid str_replace(' '''$sid);

                
// $name = substr($line, 0, 15);
                // $name = str_replace(' ', '', $name);
                //
                // $sid = substr($line, 15);
                // $sid = str_replace(' ', '', $sid);

                
if ( ! empty($name) && ! empty($sid)) {
                    
$old[$name] = $sid;
                }
            }
        }
    }
    
fclose($handle);
}

$error false;
foreach (
$new as $name => $sid) {
    if(!
array_key_exists($name$old)){
        echo 
$name.' not exist in new file<br>';
        
$error true;
    }
}
foreach (
$old as $name => $sid) {
    if(!
array_key_exists($name$new)){
        echo 
$name.' not exist in old file<br>';
        
$error true;
    }
}
if(
$error){
    exit;
}



header("Content-Type: text/plain; charset=UTF-8");
header('Content-Disposition: attachment; filename=scanacl.txt');

//gen file
foreach ($new as $name => $sid) {
    
$old_sid $old[$name];
    
// echo mb_detect_encoding($old_sid, "auto");

    // $name = strtolower($name);
    
echo "rem $name\r\nsetacl.exe -on $path -ot file -actn trustee -trst \"n1:$old_sid;n2:$sid;ta:repltrst\" -rec cont\r\n";

}