php 解析字符串而不解码
php parse string without decoding
我的$_SERVER['QUERY_STRING']
returns这个:
route=common/home/test/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g%2Fdj1iZWsxeTJ1aVFHQQ%3D%3D/456¶m2=test
我们可以看到get请求传递了base64编码的字符串。
我想在不解码其值的情况下解析路由参数。
我需要这个:
common/home/test/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g%2Fdj1iZWsxeTJ1aVFHQQ%3D%3D/456
不是这个:
common/home/test/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1iZWsxeTJ1aVFHQQ==/456
我试图用 parse_str 函数解析路由参数。但它解码了路线的价值。
$route_var = $_REQUEST["route"];
$pieces = explode("/", $route_var);
$sliced = array_slice($pieces, 3)
$based = implode("/", $sliced);
$pathslice = array_slice($pieces, 0,3);
$path = implode("/", $pathslice);
$b64part = urlencode($based);
$output = $path."/".$b64part;
如果您回显输出,这应该会为您提供正确编码的 base64。
您基本上可以复制 parse_str
但不应用 urldecode:
$x = $_SERVER['QUERY_STRING'];
$y = explode('&', $x);
$qs = [];
foreach($y AS $z) {
list($key, $val) = explode('=', $z);
$qs[$key] = $val;
}
哪个应该给你
array(2) {
["route"]=> string "common/home/test/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g%2Fdj1iZWsxeTJ1aVFHQQ%3D%3D/456"
["param2"]=> string "test"
}
我的$_SERVER['QUERY_STRING']
returns这个:
route=common/home/test/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g%2Fdj1iZWsxeTJ1aVFHQQ%3D%3D/456¶m2=test
我们可以看到get请求传递了base64编码的字符串。 我想在不解码其值的情况下解析路由参数。
我需要这个:
common/home/test/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g%2Fdj1iZWsxeTJ1aVFHQQ%3D%3D/456
不是这个:
common/home/test/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1iZWsxeTJ1aVFHQQ==/456
我试图用 parse_str 函数解析路由参数。但它解码了路线的价值。
$route_var = $_REQUEST["route"];
$pieces = explode("/", $route_var);
$sliced = array_slice($pieces, 3)
$based = implode("/", $sliced);
$pathslice = array_slice($pieces, 0,3);
$path = implode("/", $pathslice);
$b64part = urlencode($based);
$output = $path."/".$b64part;
如果您回显输出,这应该会为您提供正确编码的 base64。
您基本上可以复制 parse_str
但不应用 urldecode:
$x = $_SERVER['QUERY_STRING'];
$y = explode('&', $x);
$qs = [];
foreach($y AS $z) {
list($key, $val) = explode('=', $z);
$qs[$key] = $val;
}
哪个应该给你
array(2) {
["route"]=> string "common/home/test/aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g%2Fdj1iZWsxeTJ1aVFHQQ%3D%3D/456"
["param2"]=> string "test"
}