You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tt-rss/vendor/thecodingmachine/safe/generated/json.php

74 lines
1.9 KiB
PHP

<?php
namespace Safe;
use Safe\Exceptions\JsonException;
/**
* Returns a string containing the JSON representation of the supplied
* value.
*
* The encoding is affected by the supplied options
* and additionally the encoding of float values depends on the value of
* serialize_precision.
*
* @param mixed $value The value being encoded. Can be any type except
* a resource.
*
* All string data must be UTF-8 encoded.
*
* PHP implements a superset of JSON as specified in the original
* RFC 7159.
* @param int $options Bitmask consisting of
* JSON_FORCE_OBJECT,
* JSON_HEX_QUOT,
* JSON_HEX_TAG,
* JSON_HEX_AMP,
* JSON_HEX_APOS,
* JSON_INVALID_UTF8_IGNORE,
* JSON_INVALID_UTF8_SUBSTITUTE,
* JSON_NUMERIC_CHECK,
* JSON_PARTIAL_OUTPUT_ON_ERROR,
* JSON_PRESERVE_ZERO_FRACTION,
* JSON_PRETTY_PRINT,
* JSON_UNESCAPED_LINE_TERMINATORS,
* JSON_UNESCAPED_SLASHES,
* JSON_UNESCAPED_UNICODE,
* JSON_THROW_ON_ERROR.
* The behaviour of these constants is described on the
* JSON constants page.
* @param int $depth Set the maximum depth. Must be greater than zero.
* @return string Returns a JSON encoded string on success.
* @throws JsonException
*
*/
function json_encode($value, int $options = 0, int $depth = 512): string
{
error_clear_last();
$result = \json_encode($value, $options, $depth);
if ($result === false) {
throw JsonException::createFromPhpError();
}
return $result;
}
/**
* Returns the error string of the last json_encode or json_decode
* call, which did not specify JSON_THROW_ON_ERROR.
*
* @return string Returns the error message on success, "No error" if no
* error has occurred.
* @throws JsonException
*
*/
function json_last_error_msg(): string
{
error_clear_last();
$result = \json_last_error_msg();
if ($result === false) {
throw JsonException::createFromPhpError();
}
return $result;
}