scratch – Diff between revs 66 and 81

Subversion Repositories:
Rev:
Only display areas with differencesIgnore whitespace
Rev 66 Rev 81
1 <?php 1 <?php
2   2  
3 ########################################################################### 3 ###########################################################################
4 ## Copyright (C) Wizardry and Steamworks 2015 - License: GNU GPLv3 ## 4 ## Copyright (C) Wizardry and Steamworks 2015 - License: GNU GPLv3 ##
5 ########################################################################### 5 ###########################################################################
6 function atomized_put_contents($file, $data, $block = 1) 6 function atomized_put_contents($file, $data, $block = 1)
7 { 7 {
8 $f = fopen($file, 'a'); 8 $f = fopen($file, 'a');
9 if (!$f || !flock($f, LOCK_EX | LOCK_NB, $block) || $block) 9 if (!$f || !flock($f, LOCK_EX | LOCK_NB, $block) || $block)
10 return; 10 return;
11 ftruncate($f, 0); 11 ftruncate($f, 0);
12 fwrite($f, $data, strlen($data)); 12 fwrite($f, $data, strlen($data));
-   13 $t = filemtime ($file);
13 flock($f, LOCK_UN); 14 flock($f, LOCK_UN);
14 fclose($f); 15 fclose($f);
15 return $data; 16 return $t;
16 } 17 }
17   18  
18 ########################################################################### 19 ###########################################################################
19 ## Copyright (C) Wizardry and Steamworks 2015 - License: GNU GPLv3 ## 20 ## Copyright (C) Wizardry and Steamworks 2015 - License: GNU GPLv3 ##
20 ########################################################################### 21 ###########################################################################
21 function atomized_get_contents($file, $block = 1) 22 function atomized_get_contents($file, $block = 1)
22 { 23 {
23 $f = fopen($file, 'r+'); 24 $f = fopen($file, 'r+');
24 if (!$f || !flock($f, LOCK_SH | LOCK_NB, $block) || $block) 25 if (!$f || !flock($f, LOCK_SH | LOCK_NB, $block) || $block)
25 return; 26 return;
26 $s = get_file_size($file); 27 $s = get_file_size($file);
27 if ($s == 0) { 28 if ($s == 0) {
28 flock($f, LOCK_UN); 29 flock($f, LOCK_UN);
29 fclose($f); 30 fclose($f);
30 return; 31 return;
31 } 32 }
32 $c = fread($f, $s); 33 $c = fread($f, $s);
33 flock($f, LOCK_UN); 34 flock($f, LOCK_UN);
34 fclose($f); 35 fclose($f);
35 return $c; 36 return $c;
36 } 37 }
37   38  
38 ########################################################################### 39 ###########################################################################
39 ## Copyright (C) Wizardry and Steamworks 2015 - License: GNU GPLv3 ## 40 ## Copyright (C) Wizardry and Steamworks 2015 - License: GNU GPLv3 ##
40 ########################################################################### 41 ###########################################################################
41 function get_file_size($file, $block = 1) 42 function get_file_size($file, $block = 1)
42 { 43 {
43 $f = fopen($file, 'r+'); 44 $f = fopen($file, 'r+');
44 if (!$f || !flock($f, LOCK_SH | LOCK_NB, $block) || $block) 45 if (!$f || !flock($f, LOCK_SH | LOCK_NB, $block) || $block)
45 return; 46 return;
46 47
47 $s = 1073741824; 48 $s = 1073741824;
48 $i = 0; 49 $i = 0;
49 fseek($f, 0, SEEK_SET); 50 fseek($f, 0, SEEK_SET);
50 do { 51 do {
51 fseek($f, $s, SEEK_CUR); 52 fseek($f, $s, SEEK_CUR);
52   53  
53 if (fgetc($f) === false) { 54 if (fgetc($f) === false) {
54 fseek($f, -$s, SEEK_CUR); 55 fseek($f, -$s, SEEK_CUR);
55 $s = (int)($s / 2); 56 $s = (int)($s / 2);
56 continue; 57 continue;
57 } 58 }
58 fseek($f, -1, SEEK_CUR); 59 fseek($f, -1, SEEK_CUR);
59 $i += $s; 60 $i += $s;
60 } while ($s > 1); 61 } while ($s > 1);
61   62  
62 while (fgetc($f) !== false) 63 while (fgetc($f) !== false)
63 $i++; 64 $i++;
64 65
65 flock($f, LOCK_UN); 66 flock($f, LOCK_UN);
66 fclose($f); 67 fclose($f);
67 return $i; 68 return $i;
68 } 69 }
69   70