【发布时间】:2026-01-03 10:25:01
【问题描述】:
这个问题对于 PHP 知识不错的人来说应该不难,请你帮我解答一下。
这是从 URL 中删除所有过滤器(参数)的 PHP 函数(“清除过滤器”链接),但它也会从我的域中删除连字符,这是不受欢迎的行为。所以,当domain为“e-domain.com”时,返回“edomain.com”,最终过滤器清理URL不正确。我该如何解决? (如果您需要更多细节,请告诉我)谢谢!
<?php
function _clear_filters_url($available_get = array('filter1','filter2','filter3')){
$_temp = parse_url('http'.(empty($_SERVER['HTTPS'])?'':'s').'://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
$_temp_root = $_temp['scheme'].'://'.$_temp['host'].$_temp['path'];
parse_str($_temp['query'], $_get_query);
$i = 0;
foreach($_get_query as $index => $item){
if(in_array($index, $available_get)){
if(!$i)$_temp_root.='?';
else $_temp_root.='&';
$_temp_root .= ($index.'='.$item);
$i++;
}
}
return($_temp_root);
}
?>
<a href="<?php echo htmlspecialchars(_clear_filters_url()); ?>" id="mi-clear-top-filters"><?php echo $this->__('Clear filters'); ?></a>
【问题讨论】: