Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii-解析自定义URL_Php_Regex_Yii - Fatal编程技术网

Php Yii-解析自定义URL

Php Yii-解析自定义URL,php,regex,yii,Php,Regex,Yii,我需要将自定义url解析为数据。URL可能如下所示: http://host.com/categoryXXX/brandYYY/markZZZ/page/1/otherparameters/othervalues 其中前三个参数基本上是前缀+值对(类别-前缀,XXX-值)。除了第一个(类别)之外,它们可能不都存在 所有其他参数都是可选的,可能存在也可能不存在,并且它们也是成对的“键/值”,即Yii的常用路径格式 我真的不知道如何解析如此复杂的URL。基本上,我需要一个合适的urlManager

我需要将自定义url解析为数据。URL可能如下所示:

http://host.com/categoryXXX/brandYYY/markZZZ/page/1/otherparameters/othervalues
其中前三个参数基本上是前缀+值对(类别-前缀,XXX-值)。除了第一个(类别)之外,它们可能不都存在

所有其他参数都是可选的,可能存在也可能不存在,并且它们也是成对的“键/值”,即Yii的常用路径格式

我真的不知道如何解析如此复杂的URL。基本上,我需要一个合适的urlManager规则和一个工作机制来解析它们

非常感谢您的建议。

/\/类别(?p[^\/]*)(?:\/品牌(?p[^\/]*))?(?:\/标记(?p[^\/]*))?/i
/\/category(?P<category_id>[^\/]*)(?:\/brand(?P<brand_id>[^\/]*))?(?:\/mark(?P<mark_id>[^\/]*))?/i
这将为您要查找的所有字段创建命名捕获。品牌标识和标记标识是可选的

工作版本:

是否可以对其进行修改,使标记和品牌可以互换?如果您不知道它们的顺序,只需运行单独的正则表达式即可。类别:/\/类别(?P[^\/\?]*)/i品牌:/\/品牌(?P[^\/\?]*)/i标记:/\/标记(?P[^\/\?]*)/i