74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			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;
 | |
| }
 |