| Server IP : 46.105.57.169 / Your IP : 216.73.217.8 Web Server : Apache System : Linux webd003.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : maitricfuz ( 93378) PHP Version : 8.4.22 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/maitricfuz/www/saint-martin-lg/libraries/regularlabs/src/ |
Upload File : |
<?php
/**
* @package Regular Labs Library
* @version 26.7.20176
*
* @author Peter van Westen <info@regularlabs.com>
* @link https://regularlabs.com
* @copyright Copyright © 2026 Regular Labs All Rights Reserved
* @license GNU General Public License version 2 or later
*/
namespace RegularLabs\Library;
defined('_JEXEC') or die;
class Json
{
public static function decode(?string $json, mixed $default = null, bool $associative = \false, bool $throw = \false, int $flags = 0): mixed
{
if (is_null($json) || $json === '') {
return $default;
}
$decoded = json_decode($json, $associative, 512, $throw ? $flags | \JSON_THROW_ON_ERROR : $flags);
if (!$throw && json_last_error() !== \JSON_ERROR_NONE) {
return $default;
}
return $decoded;
}
public static function encodeForScript(mixed $value): string
{
if (is_array($value)) {
$values = [];
foreach ($value as $item) {
$values[] = self::encodeScriptValue($item);
}
return implode(', ', $values);
}
return self::encodeScriptValue($value);
}
public static function toArray(?string $json, array $default = [], bool $throw = \false, int $flags = 0): array
{
$decoded = self::decode($json, $default, \true, $throw, $flags);
return is_array($decoded) ? $decoded : $default;
}
public static function toObject(?string $json, ?object $default = null, bool $throw = \false, int $flags = 0): ?object
{
$decoded = self::decode($json, $default, \false, $throw, $flags);
return is_object($decoded) ? $decoded : $default;
}
private static function encodeScriptValue(mixed $value): string
{
return json_encode($value, \JSON_HEX_TAG | \JSON_HEX_APOS | \JSON_HEX_QUOT | \JSON_HEX_AMP);
}
}