| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.9/wp-content/plugins/duplicator/src/Libs/Snap/JsonSerialize/ |
Upload File : |
<?php
/**
*
* @package Duplicator
* @copyright (c) 2021, Snapcreek LLC
*/
namespace Duplicator\Libs\Snap\JsonSerialize;
use Duplicator\Libs\Snap\SnapJson;
use Duplicator\Libs\Snap\SnapLog;
use Exception;
/**
* This class serializes and deserializes a variable in json keeping the class type and saving also private objects
*/
class JsonSerialize extends AbstractJsonSerializeObjData
{
/**
* Return json string
*
* @param mixed $value value to serialize
* @param integer $flags json_encode flags
* @param integer $depth json_encode depth
*
* @link https://www.php.net/manual/en/function.json-encode.php
*
* @return string|bool Returns a JSON encoded string on success or false on failure.
*/
public static function serialize($value, $flags = 0, $depth = 512)
{
return SnapJson::jsonEncode(self::valueToJsonData($value, $flags), $flags, $depth);
}
/**
* Unserialize from json
*
* @param string $json json string
* @param integer $depth json_decode depth
* @param integer $flags json_decode flags
*
* @link https://www.php.net/manual/en/function.json-decode.php
*
* @return mixed
*/
public static function unserialize($json, $depth = 512, $flags = 0)
{
// phpcs:ignore PHPCompatibility.FunctionUse.NewFunctionParameters.json_decode_optionsFound
$publicArray = (version_compare(PHP_VERSION, '5.4', '>=') ? json_decode($json, true, $depth, $flags) : json_decode($json, true, $depth)
);
return self::jsonDataToValue($publicArray);
}
/**
* Unserialize json on passed object
*
* @param string $json json string
* @param object|string $obj object to fill or class name
* @param integer $depth json_decode depth
* @param integer $flags json_decode flags
*
* @link https://www.php.net/manual/en/function.json-decode.php
*
* @return object
*/
public static function unserializeToObj($json, $obj, $depth = 512, $flags = 0)
{
if (is_object($obj)) {
} elseif (is_string($obj) && class_exists($obj)) {
$obj = self::getObjFromClass($obj);
} else {
throw new Exception('invalid obj param');
}
// phpcs:ignore PHPCompatibility.FunctionUse.NewFunctionParameters.json_decode_optionsFound
$value = (version_compare(PHP_VERSION, '5.4', '>=') ? json_decode($json, true, $depth, $flags) : json_decode($json, true, $depth)
);
if (!is_array($value)) {
throw new Exception('json value isn\'t an array VALUE: ' . SnapLog::v2str($value));
}
return self::fillObjFromValue($value, $obj);
}
}