【问题标题】:php - 2 identical string showing different lengthsphp - 2 个相同的字符串显示不同的长度
【发布时间】:2017-11-03 10:20:56
【问题描述】:

我在比较 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() 比较两个值的正确方法是什么,因为我将做其他代码。

【问题讨论】:

  • 什么是 var $json_data?是否有字符串或 JSON 对象?
  • 不太清楚您要使用 bin2hex 函数做什么。您也没有显示执行查询的代码以及数据的存储方式。
  • 2671756f743b&amp;quot;,引用字符的html实体; html_entity_decode() 会将其转换为实际的引号字符
  • @Warrior,bin2hex() 函数只是想找出不同之处

标签: php string strcmp bin2hex


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-23
      • 2019-11-30
      • 2018-12-28
      • 2023-01-07
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多