http_build_query空格有关问题

http_build_query空格问题
$data = array('foo'=>'bar', 
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data);
/* 默认输出:
foo=bar&baz=boom&cow=milk&php=hypertext+processor
我想输出的格式
foo=bar&baz=boom&cow=milk&php=hypertext%20processor
*/
?>

本人新手,由于服务器规定是空格为%20才能识别,如果是+号则报错,而这个函数是否有替代品,或者是需要重构?谢谢大神。
------解决思路----------------------
用http_build_query得到foo=bar&baz=boom&cow=milk&php=hypertext+processor
再用str_replace函数去替换掉 + 号。