首页 > 解决方案 > 统一查询字符串中相同的 URL 参数

问题描述

我对 php 相当陌生,并且正在编写一个通过 GET 方法过滤数据库条目的脚本。提交表单后,我得到如下 URL 结果(仅 query_string):

?mode=compilation&user_filter=Gerhard&user_filter=Harry

由于简短和适合现有脚本的原因,我需要完全像这样格式化的 URL(没有其他选择):

?mode=compilation&user_filter=Gerhard,Harry

“user_filter”是过滤变量的名称。还有两个命名为“category_filter”和“tag_filter”,因此 URL 可能会变得很长。此外,现有的 php 脚本只过滤最后一个 user_filter 参数,而在第二个示例中,它只包含一个 user_filter 并用逗号分隔值,结果像我希望的那样被过滤并包含用户“Gerhard”和“哈利”。当我手动输入 URL 时,此方法可以完美地工作,并且与其他两个过滤器变量完全一样,但我需要在提交表单时对其进行解析/重写并自动发送。

我想我必须$_SERVER['QUERY_STRING']通过利用parse_str()或其他方式接收字符串并对其进行操作。但是,如何自动将每个附加的同名 user_filter-parameter 与一个预先存在的 user_filter-parameter 统一为逗号分隔的值数组并将其发送到页面?
还是有其他方法?

用户、类别和标签过滤器在三个单独的选择表单中提供,每个表单都有自己的下拉列表和自己的提交按钮。提交后,页面将使用新的 URL 参数重新加载,并在选择表单下方的额外 html 表格中显示结果。预先存在的选择通过input type="hidden"(隐藏的输入字段)传递,这一切都很好。如果我有用户过滤器的解决方案(例如),我想我也可以为其他两个过滤器变量实现它。

问候
金牛座

标签: phpurl-rewritinggetquery-stringurl-parameters

解决方案


推荐阅读