比较相等的字符串返回false


Compareing equal strings returns false

第一个字符串从数据库加载到"textarea"中。在第二步中,我想检查文本区域中的文本是否更改为数据库中的相同文本。。。。所有内容都是UTF-8编码的。

我已经读过很多类似的帖子,其中总是有空白的问题。这就是我尝试的:

$defaultTextblock = $this->textBlockTable->getTextBlock($textBlock->templateID);
$defaultTextblock->text = str_replace("'0", "", $defaultTextblock->text);
if(strcmp(trim($defaultTextblock->text), trim($textBlock->text)) !== 0)
{
    $textBlock = $this->textBlockTable->addDocumentTextBlock($textBlock);
}

它仍然说没有平等。。。。以下是var_dumps+xdebug:

文本框中的文本:

在弗拉根,我在Verfügung和Stellungnahme的舞台上表演。安格博特的精神不是Erwartungen吗?我很高兴看到贝谢德,我很高兴见到他!在海滩上,Angebot是第二个Vertragsunterzeichnung freibleibend versteht。Ferner behalten wir un Irrtümer bei Angaben zu Austattungen and Leistungsmerkmalen vor(长度=458)

数据库中的文本(defaultTextBlock):

在弗拉根,我在Verfügung和Stellungnahme的舞台上表演。安格博特的精神不是Erwartungen吗?我很高兴看到贝谢德,我很高兴见到他!在海滩上,Angebot是第二个Vertragsunterzeichnung freibleibend versteht。Ferner behalten wir un Irrtümer bei Angaben zu Austattungen and Leistungsmerkmalen vor(长度=456)

我真的不明白这个问题。。。我知道长度不同,但为什么?

问题是PHP在Windows IIS下运行(我没有修改),而数据库是MySQL。两者都使用不同的方法来处理断线。

  • Windows正在使用'r'n
  • MySQL(和Linux)正在使用'n

遗憾的是,块代码并没有显示文本中有换行符,否则你们中的一些人肯定已经找到了答案。正好有1条断线,额外的'r是长度的差值"2"