parse_str解析问题

php解析raw格式数据: 

$raw_params = file_get_contents("php://input");
收到原数据格式,得到类似:
operator_token=10ac2753e78abxxxxx62d1f70fc2aaca&secret_key=bff7e71e45bad3ccexxx76e309&operator_player_session=RXZvR3dIMmpDUDZIL3hHZm0vdHRQZz09Ojo0iswLEYe3w/7P+FF8GUsX&game_id=79&ip=1.64.168.8&custom_parameter=&bet_type=1
 
然而当我们解析时,注意
operator_player_session后面加密字符串有个+号,我们开始解析:
parse_str(
$raw_params,
$after_params
);
得到$after_params,
此时,+被替换成了 空格。
 
 
修复方案:
// 使用 parse_str 解析字符串,但不保留 +,解决办法是 先编码
$raw_params = str_replace('+', '%2B', $raw_params); //%2B 代表urlencode里面的空格
parse_str($raw_params,$params);
再次解析,发现问题解决。特此记录一下
 
 
 
posted @ 2024-03-19 23:17  龙卷风之殇  阅读(31)  评论(0)    收藏  举报