чем `parse_qs` не подошел?
он не сломается на _стандартном_ `'qwe=2;dsa=1'`