Php 菲律宾元';不能比较同一个字符串

Php 菲律宾元';不能比较同一个字符串,php,string-comparison,Php,String Comparison,如果我显示$d[0]它就是liam。schnell@gmail.com但它拒绝接受如果 $d = file("mails.txt"); if ($d[0] == "liam.schnell@gmail.com") { echo "JOW!"; } echo $d[0]; 有什么想法吗?尝试调用$d[0],这将删除字符串开头和结尾的所有新行字符 $d = file("mails.txt"); if(trim($d[0])=="liam.schnell@gm

如果我显示
$d[0]
它就是
liam。schnell@gmail.com
但它拒绝接受如果

$d = file("mails.txt");
if ($d[0] == "liam.schnell@gmail.com") {
    echo "JOW!";
}
echo $d[0];
有什么想法吗?

尝试调用
$d[0]
,这将删除字符串开头和结尾的所有新行字符

        $d = file("mails.txt");
        if(trim($d[0])=="liam.schnell@gmail.com"){
            echo "JOW!";
        }
        echo $d[0];
或者根本不包括任何新行:

        $d = file("mails.txt", FILE_IGNORE_NEW_LINES);
        if($d[0]=="liam.schnell@gmail.com"){
            echo "JOW!";
        }
        echo $d[0];
结果数组中的每一行都将 包括行尾,除非 文件\u忽略\u使用新的\u行,因此 如果需要,仍然需要使用rtrim() 我不想让这行结尾出现


发件人:

我同意迈克·刘易斯的观点,使用trim可能会解决它失败的原因

另外,一般来说,如果在PHP中比较字符串时出现奇怪的结果,请尝试“===”或strcomp以查看是否解决了该问题


$d[0]
的末尾可能有一个
换行符。如果我将其与利亚姆比较,则不会。schnell@gmail.com\n它不会触发您可以使用
var\u dump
更好地查看变量的内容,因为它将避开讨厌的换行符和其他东西,以便您可以看到它们。
\r\n
在某些非*nix系统上也被视为
换行符。您是否在Windows机箱上?\r\n适用于Windows\n是unix,我相信旧的osx之前的Mac使用了\rOr
strcasecmp
,这是二进制安全的不区分大小写的字符串比较。
$d = file("mails.txt", FILE_IGNORE_NEW_LINES);
if ($d[0] == "liam.schnell@gmail.com") {
    echo "JOW!";
}
echo $d[0];