字符串相同,但在相等时评估为false?

时间:2014-02-14 08:53:05

标签: php

我正在尝试读取localhost中的文件,并将等效字符串与另一个字符串进行比较。 字符串的内容完全相同,我做了以下内容:

$homepage = file_get_contents('./output.txt');
$input="some string"

strcmp($input,$homepage) //this statement evaluates to -1..

我哪里错了..?如何反复检查从文件中读取的字符串是否与要比较的字符串完全相同..?

这是一个有两个字符串回放的屏幕截图..

enter image description here

2 个答案:

答案 0 :(得分:2)

试试这个:

strcmp($input, trim($homepage));

我正在使用trim()$homepage中删除前导空格或尾随空格。正如我在评论中所说,我想在$homepage结束时有一个换行符。

答案 1 :(得分:0)

您从文件中读取的字符串中可能存在换行符。 从外部源获取输入时最好的做法是修剪尾随和前导空格(以及过滤/验证,但这是另一个问题)。

e.g。

$homepage = trim(file_get_contents('./output.txt'));
$input="some string";

作为另一个例子:

kguest@radagast:~$ php -a
Interactive mode enabled

php > $f = "  foo \n";
php > $b = "foo";
php > var_dump($f === $b);
bool(false)
php > var_dump(trim($f) === $b);
bool(true)
php > var_dump(strcmp(trim($f), $b));
int(0)
php >