IF语句的Php问题

IF语句的Php问题,php,html,file,if-statement,Php,Html,File,If Statement,嘿,伙计们,现在我需要检查两个文件的内容,以确保它们是相同的 <?php $tk1 = file_get_contents("done.txt"); $tk2 = file_get_contents("guessed.txt"); echo $tk1."<br>"; echo $tk2; echo "<br>"; if($tk2 == (string)$tk1){ echo "got it"; }else{ echo "aww"; } ?> OK ins

嘿,伙计们,现在我需要检查两个文件的内容,以确保它们是相同的

<?php
$tk1 = file_get_contents("done.txt");
$tk2 = file_get_contents("guessed.txt");
echo $tk1."<br>";
echo $tk2;
echo "<br>";
if($tk2 == (string)$tk1){
echo "got it";
}else{
echo "aww";
}
?>

OK inside done.txt是whatonearth,inside guessed.txt中还有whatonearth 但是它一直在回响,而且从来没有回响过,明白了吗。有人能帮忙吗?
谢谢

听起来好像
done.txt
guessed.txt
没有相同的内容。也许一个结尾有额外的空格,或者类似的不显眼的地方。而不是执行
echo$tk1
echo$tk2
我建议您使用
var\u dump
,这样您就可以准确地看到这些变量的值。

您发布的代码是有效的,所以我的假设是这两个文件之间存在细微的差异

这些文件是如何创建的?它们是由用户上传的吗?由PHP生成?如果其中一个或两个都来自外部源,那么您应该检查新行是如何处理的。如果一个文件使用CR+LF作为换行符(即“Windows样式”),而另一个文件仅使用LF(即“Unix样式”),则比较将失败

如果($tk2==(字符串)$tk1){


对php了解不多,但是转换是否会更改$tk1?

要修复的代码没有问题。这两个文件的内容不相同。如果它们看起来相同,则其中一个文件会有额外的空格或空行或类似内容。字符串转换是怎么回事?我认为不需要这样做。请尝试删除转换。是的,我考虑过在,我甚至用preg_replace来删除任何空格,但没有。我很困惑……它可能是一个你看不见的字符,比如字节顺序标记。我删除了它,但仍然给出了相同的东西。它们是由另一个脚本创建的。只需使用fopen和fwrite。@teaguen-在这种情况下,你能给我们看一下生成它们的代码吗?它有180行长,一个我大声说要发布这么长的代码吗?对不起,我是新的。file\u get\u contents返回一个字符串。这里的强制转换毫无意义。我知道,对不起,我只是在想可能有不同的文件类型,因为我尝试了我能想到的几乎所有方法,但仍然无法工作。我使用了var dump。结果如下:string(12)“whatonearth”string(11)“whatonearth”谢谢谢谢,我用了:$sPattern='/\s*/m';$sReplace='';$donerr=preg_replace($sPattern,$sReplace,$donerr);它删除了结尾的1个字符,谢谢大家,我想现在可以用了