У меня возникла проблема при сравнении 2 одинаковых строк. Первая строка извлекается из базы данных, а другая жестко закодирована.
Строка { "name":"John", "age":30, "car":null }
,
Сначала я запустил этот код, и строка базы данных имеет длину 79 символов, а жестко закодированная строка имеет длину 39 символов.
echo '<pre>';var_dump($json_data);echo '</pre>';
echo '<pre>';var_dump('{ "name":"John", "age":30, "car":null }');echo '</pre>';
После некоторых поисков было предложено использовать bin2hex()
и используя это, я сузил его до "
персонаж.
Замена значения базы данных на "
и запуск следующих кодовых выходов
2671756f743b
для значения базы данных и 22
для жестко закодированного значения.
echo bin2hex($json_data)."<br>";
echo bin2hex('"')."<br>";
Как правильно получить оба значения для сравнения, используя strcmp()
на основе сравнения я буду делать другой код.
Благодаря @Mark Baker мне пришлось html_entity_decode()
значение базы данных и теперь оба значения совпадают.
Других решений пока нет …