I'm aware that numeric strings may be type juggled in PHP, but I can't see why it's happening here or giving this result:
$a="00010010001101000000101";
$b="00010010001101000000001";
$c = (($a == $b) ? "true" : "false");
$d = (($a === $b) ? "true" : "false");
echo $c . " " . $d . "\n"; // true false
But in this case $a and $b are defined the same way, of the same length, but different contents many chars in. How is ($a == $b) evaluating as true?