Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
z-push
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Björn Fischer
z-push
Commits
aae8d705
Commit
aae8d705
authored
Nov 30, 2015
by
Etienne CHAMPETIER
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ZP-794 add Utils::SafePutContents().
Released under the Affero GNU General Public License (AGPL) version 3.
parent
35af4403
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
0 deletions
+21
-0
utils.php
src/lib/utils/utils.php
+21
-0
No files found.
src/lib/utils/utils.php
View file @
aae8d705
...
@@ -933,6 +933,27 @@ class Utils {
...
@@ -933,6 +933,27 @@ class Utils {
}
}
return
substr
(
$email
,
0
,
$pos
);
return
substr
(
$email
,
0
,
$pos
);
}
}
/**
* Safely write data to disk, using an unique tmp file (concurrent write),
* and using rename for atomicity
*
* If you use SafePutContents, you can safely use file_get_contents
* (you will always read a fully written file)
*
* @param string $filename
* @param string $data
* @return boolean|int
*/
public
static
function
SafePutContents
(
$filename
,
$data
)
{
//put the 'tmp' as a prefix (and not suffix) so all glob call will not see temp files
$tmp
=
dirname
(
$filename
)
.
DIRECTORY_SEPARATOR
.
'tmp-'
.
getmypid
()
.
'-'
.
basename
(
$filename
);
if
((
$res
=
file_put_contents
(
$tmp
,
$data
))
!==
false
)
if
(
rename
(
$tmp
,
$filename
)
!==
true
)
$res
=
false
;
return
$res
;
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment