php读文件中字符串的问题

我先建立一个文件abc内容是123我用$str=file_get_contents('abc');if($str=='123'){echo'等于';}else{echo'... 我先建立一个文件 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出来,我看到的也是正确的字符串,可是 == 一下,却又不相等阿
展开
 我来答
cartli
2009-08-09 · TA获得超过291个赞
知道小有建树答主
回答量:292
采纳率:0%
帮助的人:242万
展开全部
file_get_contents 参数是文件名,系统认为‘abc'是文件名,而内容为空,所以不会等于123.
file_put_contents 是把字符串写入文件,所以内容里面包含123,第二个它俩就相等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
湘味熊美食
2009-08-09 · 超过71用户采纳过TA的回答
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:137万
展开全部
'abc'本来就不等于‘123’呀

file_put_contents ('abc', '123');是一个数组
判断的第一个相等就相当呀
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z_by
2009-08-09 · TA获得超过1947个赞
知道大有可为答主
回答量:2699
采纳率:66%
帮助的人:2041万
展开全部
或许是编码问题,你自己建的文件是编码保存的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
helen5106
2009-08-09 · TA获得超过1260个赞
知道小有建树答主
回答量:2015
采纳率:0%
帮助的人:1060万
展开全部
如果你保存这个abc的文件格式为utf8,那么读出来就不同了,以UTF8格式储存的文件档首标识为EF BB BF。

参考资料: http://baike.baidu.com/view/742823.htm

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式