php - 显示不同长度的2个相同字符串

时间:2017-11-03 10:20:57

标签: php string strcmp bin2hex

我在比较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()来比较这两个值的正确方法是什么?我将使用其他代码。

2 个答案:

答案 0 :(得分:1)

感谢@Mark Ba​​ker,我不得不html_entity_decode()数据库值,现在两个值都匹配。

答案 1 :(得分:0)

发生了类似的问题,其中两个字符串似乎相同,设法通过以下方式找出其中一个字符串的问题。

  • json_encode()字符串,这将导致 null
  • 运行json_last_error_msg()以获得任何编码错误。得到了格式错误的UTF-8字符,可能编码有误
  • 在字符串上运行
  • utf8_encode()可以解决编码错误。