php-strlen()在不同的环境中为相同的字符串获取不同的值


php strlen() getting different value on different environments for same string

我有一个长xml字符串,我正在获取它的长度以进行比较。在Linux环境中,它的值为2788,但在Windows环境中,其值为2860。我对输出进行了区分,它们看起来是同一个字符串。在进行比较之前,我还尝试了调试用的htmlentities和字符串上的utf8_decode,但结果没有变化。为什么会出现这种差异?

var_dump($xml);
print_r($xml);
print_r(htmlentities($architype_xml));
echo strlen(utf8_decode($xml));
echo strlen($xml);

此外,我不相信我在新行中看到了什么不同,但也许var_dump和print_r并没有给我完整的画面,我不确定该怎么检查。

windows中可能的换行符是"''n''r",并且在linux上仅为"''n"?

你能把绳子给我们吗?

编辑:删除EndOfLines

$xml = str_replace(PHP_EOL, '', $xml)