str_rot13() performs the ROT13 encoding. While ROT13 is technically an encoding, I’m sure you can see that it isn’t to be relied upon for high security purposes. In short, what it does is move an alphabetical character (of ASCII value 60-90 or 97-122) 13 values to the right, wrapping around upon reaching the end of the range.

What that means is the “M” (77) will become “Z” (90), “N” (78) will become “A” (91 is out of the range so it wraps around to 60). The lowercase letters will be affected similarly - “m” becomes “z”, “n” becomes “a” and so on.

Only letters in those ranges are affected. Any other characters in the string remain as they were.

$str  = "I have the CSS working for version 6.32-dev now. Except for IE6 of course!";
$rot  = str_rot13($str); // V unir gur PFF jbexvat sbe irefvba 6.32-qri abj. Rkprcg sbe VR6 bs pbhefr!
$rot2 = str_rot13($rot); // I have the CSS working for version 6.32-dev now. Except for IE6 of course!

And since the characters are shifted 13 values, using the function on the encoded string will return the original string.