php读文件中字符串的问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 07:27:44
我先建立一个文件 abc 内容是 123
我用
$str = file_get_contents('abc');
if ($str == '123') {
echo '等于';
} else {
echo '不等于';
}
输出的结果是不等于,这是为什么?
如果我
file_put_contents ('abc', '123');
$str = file_get_contents('abc');
if ($str == '123') {
echo '等于';
} else {
echo '不等于';
}
输出的结果是 等于

那么为什么同样的字符串,我手动建立的文件和用PHP建立的文件是不一样的?
我在vim 里 :set fileencoding 看过了,全是utf-8编码,我原先在windows里没上面那个问题,但是在ubuntu上却不行,我发现php自己创建的文件的属主都是www-data, www-data有读我的帐号创建的文件的权限,所以echo出来,我看到的也是正确的字符串,可是 == 一下,却又不相等阿

'abc'本来就不等于‘123’呀

file_put_contents ('abc', '123');是一个数组
判断的第一个相等就相当呀

如果你保存这个abc的文件格式为utf8,那么读出来就不同了,以UTF8格式储存的文件档首标识为EF BB BF。

或许是编码问题,你自己建的文件是编码保存的

file_get_contents 参数是文件名,系统认为‘abc'是文件名,而内容为空,所以不会等于123.
file_put_contents 是把字符串写入文件,所以内容里面包含123,第二个它俩就相等。