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);
$raw_params = str_replace('+', '%2B', $raw_params); //%2B 代表urlencode里面的空格
parse_str($raw_params,$params);
再次解析,发现问题解决。特此记录一下
    龙卷风之殇
                    
                
                
            
        
浙公网安备 33010602011771号