PHP中的奇怪字符串

时间:2014-10-04 09:59:40

标签: php mysql string

我有两个字符串,一个字符串是API的输出 另一个作为longtext存储在MYSQL数据库中。我正在尝试 比较这两个字符串,所以这就是我所做的:

 echo $stringfromMyDatabase;
 echo "<br">;
 echo $stringfromMyApi;
 echo "<br>";
 echo strcmp($stringfromMyDatabase,$stringfromMyapi);
 echo "<br>";
 echo "StringfrommyDatabase :".strlen($stringfromMyDatabase)."and StringfromApi:".strlen($stringfromMyApi);

并且这是我获得的输出:

1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1
StringfrommyDatabase :25 and StringfromApi:17

虽然字符串看起来完全相似,但回显它们,如何 我知道这两个字符串的区别和位置以及如何打印 包含所有特殊字符的两个字符串?

任何有关正确解释的帮助都将受到高度赞赏!

2 个答案:

答案 0 :(得分:0)

使用var_dump($ stringfromMyDatabase,$ stringfromMyApi)并查看此内容。

答案 1 :(得分:0)

根据您对它们执行的strlen,字符串会有所不同。我很确定你的数据库存储了带有额外空格字符的字符串(空格,制表符......)。

试试这个:

$len = strlen($stringfromMyDatabase);
for ($i = 0; $i < $len; $i++) {
if ($stringfromMyDatabase[$i] != $stringfromMyapi[$i])
  echo "--{$stringfromMyDatabase[$i]}-- (code " . ord($stringfromMyDatabase[$i]) .
    ") != --{$stringfromMyapi[$i]}-- (code " . ord($stringfromMyapi[$i]) . ") @ char pos {$i}\n";
}

这将显示字符串的不同之处以及不同的(可能是不可打印的)字符。