Why strings in $_POST can not contain a dot "."?
Its documented in php.net
as:
Dots and spaces in variable names are converted to underscores.
This has been there since the original commit to CVS, more than 10 years ago.
It has a comment:
/* ensure that we don't have spaces or dots in the variable name (not binary safe) */
I have no idea why it isn't "binary safe"... You'd have to ask Zeev.
Current link: https://github.com/php/php-src/blob/master/main/php_variables.c#L93
That is probably a relict from register_global = On
times. $_GET
/$_POST
variables were turned into standard variables ($_GET['foo']
became $foo
). Variable names can't contain dots so they were internally converted.