secure_file_put_contents stocke les données brutes
This commit is contained in:
parent
5ede9b71c2
commit
6d7c2f725d
@ -622,26 +622,20 @@ class common
|
|||||||
*/
|
*/
|
||||||
function secure_file_put_contents($filename, $data, $flags = 0)
|
function secure_file_put_contents($filename, $data, $flags = 0)
|
||||||
{
|
{
|
||||||
// Convertit les données en chaîne de caractères
|
|
||||||
$serialized_data = serialize($data);
|
|
||||||
|
|
||||||
// Vérifie si le fichier existe
|
|
||||||
if (!file_exists($filename)) {
|
|
||||||
// Crée le fichier s'il n'existe pas
|
|
||||||
$handle = fopen($filename, 'w');
|
|
||||||
fclose($handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialise le compteur de tentatives
|
// Initialise le compteur de tentatives
|
||||||
$attempts = 0;
|
$attempts = 0;
|
||||||
|
|
||||||
|
// Convertit les données en chaîne de caractères
|
||||||
|
$serialized_data = serialize($data);
|
||||||
|
|
||||||
// Vérifie la longueur des données
|
// Vérifie la longueur des données
|
||||||
$data_length = strlen($serialized_data);
|
$data_length = strlen($serialized_data);
|
||||||
|
|
||||||
// Effectue jusqu'à 5 tentatives d'écriture
|
// Effectue jusqu'à 5 tentatives d'écriture
|
||||||
while ($attempts < 5) {
|
while ($attempts < 5) {
|
||||||
// Essaye d'écrire les données dans le fichier avec verrouillage exclusif
|
// Essaye d'écrire les données dans le fichier avec verrouillage exclusif
|
||||||
$write_result = file_put_contents($filename, $serialized_data, LOCK_EX | $flags);
|
$write_result = file_put_contents($filename, $data, LOCK_EX | $flags);
|
||||||
|
|
||||||
// Vérifie si l'écriture a réussi
|
// Vérifie si l'écriture a réussi
|
||||||
if ($write_result !== false && $write_result === $data_length) {
|
if ($write_result !== false && $write_result === $data_length) {
|
||||||
@ -665,7 +659,7 @@ class common
|
|||||||
// Constructeur JsonDB;
|
// Constructeur JsonDB;
|
||||||
$this->dataFiles[$module] = new \Prowebcraft\JsonDb([
|
$this->dataFiles[$module] = new \Prowebcraft\JsonDb([
|
||||||
'name' => $module . '.json',
|
'name' => $module . '.json',
|
||||||
'dir' => empty($path) ? self::DATA_DIR : self::DATA_DIR . $path . '/',
|
'dir' => empty($path) ? self::DATA_DIR : self::DATA_DIR . $path . '/',
|
||||||
'backup' => file_exists('site/data/.backup')
|
'backup' => file_exists('site/data/.backup')
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user