К JSON можно относиться как к одной из разновидностей текстовых форматов передачи данных. Но для PHP это просто ещё одна скалярная строка. Как определить, что перед нами действительно JSON?
Чтобы убедиться, придется попытаться декодировать строку. При неудачной декодировке функция возвращает NULL:
|
if (!is_null(json_decode($JSON_string))) { // строка в формате JSON } |
Для полноты добавим проверку на то, что перед нами скаляр-строка. Тогда валидатор будет выглядеть так:
|
function isJSON($str) { return is_string($str) && !is_null(json_decode($str)); } |
В JSON может быть закодировано значение «NULL», тогда json_decode также возвращает NULL, как и в случае ошибки. В остальных случаях валидатор выдаёт верный результат.
|
echo isJSON(1); // выведет FALSE - верно, т.к. скаляр является числом echo isJSON("1"); // выведет TRUE - верно echo isJSON("NULL"); // выведет FALSE - тот самый особенный случай echo isJSON("[1,2,3]"); // выведет TRUE - верно |
Валидатор
Данная запись опубликована в 02.10.2018 21:17 и размещена в рубрике PHP.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Сентябрь 23, 2015 г.
В этом году писал реализацию данной функции для проекта C2C-base. Оказывается, бывает ИНН двух видов - для юридических лиц и физ лиц - 10 или 12 знаков соответственно. Проверка большинства подобных кодов осуществляется по контрольным цифрам, содержащимся ...
Читать
Ноябрь 13, 2015 г.
Пример хелпера-валидатора на PHP для проверки формата ip адреса.
[crayon-687ada78f0d63680362101/]
Функция проверяет является ли формально строка ip-адресом по протоколам ipv4 или ipv6. Возвращает булево значение.
Возможно применение этого кода ...
Читать
Сентябрь 24, 2015 г.
Продолжая тему валидаторов, публикую код двух функций для проверки введенных пользователем кодов ОГРН или ОГРНИП.
Проверка кода ОГРН. Код содержит 13 знаков, последний из них используется для проверки "контрольной суммы".
[crayon-687ada78f0f6d210938097/] ...
Читать
Ноябрь 10, 2015 г.
Серию валидаторов пополняю функцией проверки введенного email на соответствие формальным требованиям.
По стандарту RFC822
Если есть необходимость соблюсти все требования, которые упомянуты в громоздкой спецификации RFC822, то лучший путь - воспользоваться ...
Читать