みなさんありがとうございます。悩んだ挙句何とか解決しました。いまいち釈然としませんが・・・。
私の書いたものは動き的には21と大差ないとおもうのですが、なぜ21の文法で動かないのか理解出来ませんでしたが。こうしたら等しいと出ました。
dat.txtに改行して
a
b
c
d
e
f
g
と入れます。そしてcを比較すると等しいですと出ました。

$dat="";
$fp = fopen("dat.txt", "r");
while($str = fgets($fp)) {
// 文字列比較
$str = trim($str);
if ( $str == "c" ) {
$dat="等しいです<br>";
}
}
fclose($fp);
print $dat;