Wow - Du übergibst 300kb an Variablen über eine URL? Zum Verständnis für mich: Warum macht man sowas?
Das Grundproblem ist, dass ich eine Website in einem Netzwerk aufrufen muss, zu dem ich kein Routing habe. Deswegen nutze ich im aufrufenden Netzwerk eine PHP-Script, welches ein Perl-Script anstößt, welches GET und POST in eine lange URL umwandelt (besagte 300KB bei bestimmten Template-Formularen), dann eine SSH-Session über mehrere Hops zum Server im Zielnetzwerk aufbaut und dort ein PHP-Overlay-Script-Script aufruft, welches die Variablen der URL zurückwandelt und die eigentlich angeforderte Website einbindet.
Zum Thema: Hast Du mal explode ausprobiert? split ist deprecated ab PHP 5.3.0
Split ist nicht dads Problem, wenn ich nach dem Split die Teilstrings ansehe ist noch alles vollständig, der Fehler tritt wirklich erst beim parse_str auf.