PHP如何使用无限数量的参数处理URL

时间:2019-06-07 11:24:12

标签: php

我想知道如何使用PHP处理无限的URL参数。例如,某些网址可以是

example.com/products/electronic/computers/i5-4400-8gb-ram-1tb-gtx-960

然后使用mod_rewrite,我会这样:

example.com/products.php?param1=electronic¶m2=computers¶m3=i5-4400-8gb-ram-1tb-gtx-960

所以我的问题是:

在这种情况下,只有3个参数。但是也许一个网站有10个嵌套类别...我怎么知道有多少个类别?

也许用户进入了

example.com/products/electronic/computers /

所以我只想显示该类别的所有产品,但是如果他去:

example.com/products/electronic /

然后我要显示子类别,而不是产品...所以...我怎么知道要显示什么?也就是说,如何知道url中的最后一个参数是具有更多类别的类别还是具有产品类别?

我希望我很清楚。预先感谢!

2 个答案:

答案 0 :(得分:0)

确保没有相同名称的类别和产品。

然后,您将获得参数end($_GET)的最后一个元素。它应该是您的产品名称。

然后在数据库中检查它:$db->findByParams('name', $lastPart)

如果找到-显示产品信息。

否则用此名称搜索类别。如果类别包含子类别-显示子类别列表,否则-显示产品列表

答案 1 :(得分:0)

这行吗?

switch(count($_GET))
{
     case 0: # error
     case 1: # show sub categories
     case 2: # show all products
     case 3: # 1 category with product
     case 4: # 2 categories
     ...
     default:
}