파라미터가 배열일 경우 get_params_merge_url 함수 코드 개선

This commit is contained in:
thisgun
2020-11-26 18:34:40 +09:00
parent 74ea8e651a
commit c7092ee1b3

View File

@ -3353,6 +3353,11 @@ function clean_query_string($query, $amp=true)
$q = array(); $q = array();
foreach($out as $key=>$val) { foreach($out as $key=>$val) {
if(($key && is_array($key)) || ($val && is_array($val))){
$q[$key] = $val;
continue;
}
$key = strip_tags(trim($key)); $key = strip_tags(trim($key));
$val = trim($val); $val = trim($val);
@ -3426,33 +3431,41 @@ function clean_query_string($query, $amp=true)
return $str; return $str;
} }
function get_params_merge_url($params){ function get_params_merge_url($params, $url=''){
$p = @parse_url(G5_URL); $str_url = $url ? $url : G5_URL;
$href = $p['scheme'].'://'.$p['host']; $p = @parse_url($str_url);
if(isset($p['port']) && $p['port']) $href = (isset($p['scheme']) ? "{$p['scheme']}://" : '')
$href .= ':'.$p['port']; . (isset($p['user']) ? $p['user']
. (isset($p['pass']) ? ":{$p['pass']}" : '').'@' : '')
if( $tmp = explode('?', $_SERVER['REQUEST_URI']) ){ . (isset($p['host']) ? $p['host'] : '')
if( isset($tmp[0]) && $tmp[0] ) . ((isset($p['path']) && $url) ? $p['path'] : '')
. ((isset($p['port']) && $p['port']) ? ":{$p['port']}" : '');
$ori_params = '';
if( $url ){
$ori_params = !empty($p['query']) ? $p['query'] : '';
} else if( $tmp = explode('?', $_SERVER['REQUEST_URI']) ){
if( isset($tmp[0]) && $tmp[0] ) {
$href .= $tmp[0]; $href .= $tmp[0];
} $ori_params = $tmp[1];
$q = array(); }
if($_SERVER['QUERY_STRING']) { if( $freg = strstr($ori_params, '#') ) {
foreach($_GET as $key=>$val) { $p['fragment'] = preg_replace('/^#/', '', $freg);
$key = strip_tags($key);
$val = strip_tags($val);
if($key && $val)
$q[$key] = $val;
} }
} }
if( is_array($params) ){ $q = array();
if( $ori_params ){
parse_str( $ori_params, $q );
}
if( is_array($params) && $params ){
$q = array_merge($q, $params); $q = array_merge($q, $params);
} }
$query = http_build_query($q, '', '&'); $query = http_build_query($q, '', '&');
$href .= '?'.$query; $qc = (strpos( $href, '?' ) !== false) ? '&' : '?';
$href .= $qc.$query.(isset($p['fragment']) ? "#{$p['fragment']}" : '');
return $href; return $href;
} }