我想知道如何使用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中的最后一个参数是具有更多类别的类别还是具有产品类别?
我希望我很清楚。预先感谢!
答案 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:
}