PHP不会比较相同的字符串

时间:2011-04-01 21:14:22

标签: php string-comparison

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

$d = file("mails.txt");
if ($d[0] == "liam.schnell@gmail.com") {
    echo "JOW!";
}
echo $d[0];

有什么想法吗?

3 个答案:

答案 0 :(得分:7)

尝试拨打$d[0]上的trim function,这会删除字符串开头和结尾的所有换行符。

        $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];
  

结果数组中的每一行都会   包括行结尾,除非   使用FILE_IGNORE_NEW_LINES,所以你   如果你这样做,仍然需要使用rtrim()   不希望行结束现在。

来自:http://php.net/manual/en/function.file.php

答案 1 :(得分:4)

我同意Mike Lewis的看法,使用trim可能会解决为什么失败的问题。

另外,一般来说,如果你在比较字符串时在PHP中遇到奇怪的结果,请尝试使用'==='或strcomp来解决这个问题。

http://www.phpcatalyst.com/php-compare-strings.php

答案 2 :(得分:3)

$d = file("mails.txt", FILE_IGNORE_NEW_LINES);
if ($d[0] == "liam.schnell@gmail.com") {
    echo "JOW!";
}
echo $d[0];