Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的奇怪字符串_Php_Mysql_String - Fatal编程技术网

PHP中的奇怪字符串

PHP中的奇怪字符串,php,mysql,string,Php,Mysql,String,我有两个字符串,一个字符串是API的输出,另一个字符串是 另一个作为longtext存储在MYSQL数据库中。我正在尝试 为了比较这两个字符串,我做了如下操作: echo $stringfromMyDatabase; echo "<br">; echo $stringfromMyApi; echo "<br>"; echo strcmp($stringfromMyDatabase,$stringfromMyapi); echo "<br>"; e

我有两个字符串,一个字符串是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);
虽然字符串在回音时看起来非常相似,但是如何 我是否知道这两个字符串的不同之处,以及如何打印 这两个字符串的所有特殊字符都被放大了吗


如有任何帮助,请给予适当解释,我们将不胜感激

使用var\u dump($stringfromMyDatabase,$stringfromMyApi)并查看这一点。

根据您对字符串执行的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";
}
$len=strlen($stringfromMyDatabase);
对于($i=0;$i<$len;$i++){
如果($stringfromMyDatabase[$i]!=$stringfromMyapi[$i])
echo“-{$stringfromMyDatabase[$i]}--(code.ord($stringfromMyDatabase[$i])。
“”!={$stringfromMyapi[$i]}--(code.ord($stringfromMyapi[$i])”@char pos{$i}\n”;
}

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

愚蠢的打字错误;s strcmp()@Pang:Shows string(25)“1 2 3 4 5 6 7 8 9”为什么会这样?我正在将从api检索到的相同字符串存储到数据库中。使用insert query命令,但在检索字符串时长度不同为什么会发生这种情况?我认为不使用这些长代码行,我们可以使用stru replace(“\”,“\ \”,$string)但是在这种情况下,“\\”报告了一个错误,为什么呢?你必须避开你的反斜杠。关于我给你的那段代码,它的唯一目的是向你展示两个字符串之间的区别。试试看有什么不同。我在MYSQL数据库中以longtext的形式存储一个特定字符串,但是当我检索同一个字符串时,原始字符串的长度与存储在数据库中的字符串的长度完全相同,但长度不同?Mysql是否使用附加字符存储文本@这是可能的。使用此代码可以查看原始字符串的附加内容。
$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";
}