ini_set('arg_separator.input','&;')
Das geht nicht, da das eine PHP_INI_PERDIR-Einstellung ist.
Das ist mir bekannt.
Warum schreibst du das dann hin? PHP_INI_PERDIR bedeutet, dass es _nicht_ mit ini_set() geht.
Aber perdir kann ja auch in der .htaccess gemacht werden, falls der Provider das nicht rigoros oder verblödet unterbunden hat.
Deswegen schrieb ich ja:
Da diese Einstellung aber nicht weiter schädlich ist, kann man sie ja auch gleich in der php.ini oder "PERDIR" setzen.
Was passiert denn mit Semikolen bei urlencode()?
Das wird zu %3B.
Eine HTML-Entity sind ja wohl nicht, was dann (bei dauerhafter Nutzug) ggf. Komplikationen mit Datenwerten geben könnte.
HTML-Entities werden vom Browser aufgelöst. Von & bekommt der Server nur ein & zu sehen.