My leading theory right now (and I don't think it's even a good one), is that there is some formatting issue with the input string.
The two strings have the same contents, but perhaps with different encoding, so === says they're the same because they have the same content, but Google's verify method ends up doing some kind of special hashing or other function that makes a difference.
My secondary theory is that there is some weird pass by value/pass by reference business going on. But it seems PHP passes by value, unless you specify it to do otherwise.
The two strings have the same contents, but perhaps with different encoding, so === says they're the same because they have the same content, but Google's verify method ends up doing some kind of special hashing or other function that makes a difference.
My secondary theory is that there is some weird pass by value/pass by reference business going on. But it seems PHP passes by value, unless you specify it to do otherwise.