传递不断变化的查询字符串PHP
我的页面上有一个文章列表,我希望能够通过将$_GET值附加到URL来应用无数种类和过滤器:
http://www.example.com/blogs.php?sort=newest&popularity=high&length=200 如果我在我的页面上有链接将这些值附加到网址…他们需要足够聪明,以便考虑应用的任何先前的排序/过滤器. 例1: 如果我现在有…… 然后我想附加一个人气=高的额外过滤器,我需要这个: http://www.example.com/blogs.php?sort=newest&popularity=high 而不是这个: http://www.example.com/blogs.php?popularity=high 例2: 如果我有… 我试图改变我的人气过滤器,我不想要: http://www.example.com/blogs.php?popularity=high&popularity=low 所以简单地添加到查询字符串将不会飞. 因此,构建我的过滤器链接以便他们“记住”旧过滤器的可扩展方法是什么,但是在需要时仍会覆盖自己的过滤器值? 解决方法
您可以将过滤器存储在关联数组中:
$myFilters = array( "popularity" => "low","sort" => "newest" ); 将过滤器存储在关联数组中可确保每个过滤器只有1个值.然后你可以使用http_build_query来构建你的查询字符串: $myURL = 'http://www.example.com/test.php?' . http_build_query($myFilters); 这将产生以下URL: http://www.example.com/test.php?popularity=low&sort=newest 编辑:哦,如果查询字符串中的过滤器顺序很重要,您可以在构建URL之前对关联数组进行排序: asort($myFilters); $myURL = 'http://www.example.com/test.php?' . http_build_query($myFilters); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |