scratch – Diff between revs 13 and 34

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