Php不添加已经存在的url参数
发布时间:2020-12-13 17:41:42 所属栏目:PHP教程 来源:网络整理
导读:在php中我添加了一个额外的URL段?按升序或降序对帖子进行排序. ?php //get current URL $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //filter URL and create sorting links if(filter_var($url,FILTER_VALIDATE_URL)) { ? a hre
在php中我添加了一个额外的URL段?按升序或降序对帖子进行排序.
<?php //get current URL $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //filter URL and create sorting links if(filter_var($url,FILTER_VALIDATE_URL)) { ?> <a href="<?php echo $url; ?>?sort=asc">Small</a> <a href="<?php echo $url; ?>?sort=desc">Large</a> <?php } ?> 问题:每次单击链接时,URL都会重复URL段. 示例:http://mysite.com/another_segment/?sort = asc?sort = asc?sort = asc 为了禁止重复,每当我点击两个排序链接中的一个时,我如何替换URL段?我不需要用&分隔参数.符号.我期待只有一个分隔符.我在分页脚本中使用它,因此当我浏览页面时,参数需要保留在URL中. 我也试图避免使用javascript 解决方法
您应该使用以下函数删除现有URL中的“排序”键,然后追加.
function remove_querystring_var($url,$key) { $url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i','$1$2$4',$url . '&'); $url = substr($url,-1); return $url; } 您的代码应该以这种方式修改 <?php //get current URL $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $url = remove_querystring_var($url,"sort"); //filter URL and create sorting links if(filter_var($url,FILTER_VALIDATE_URL)) { ?> <a href="<?php echo $url; ?>?sort=asc">Small</a> <a href="<?php echo $url; ?>?sort=desc">Large</a> <?php } ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |