1
以下THIS问题,我设法创建正则表达式使用Zend_Controller_Route_Regex
不仅可以匹配要求,但可选参数。Zend路由正则表达式 - 匹配路由与可选参数和加号
有联系,如:
fooroute,alles,p0000,1
fooroute,alles,p0000
fooroute,alles
fooroute
与开始:
fooroute,([\+\sa-zA-Z]+),([p0-9]+),(\d+)
我结束了以下的正则表达式:上面的工作就好了上市
fooroute(?:\,|$)([\+a-zA-Z]+|$)(?:\,|$)([p0-9]+|$)(?:\,|$)([0-9]+|$)
链接。
问题是\+
在第一个参数似乎没有工作正常。 试图击中以下路线:
fooroute,This+Is+Test,p0000,1
我结束了Page not found
例外。
我使用regexr.com
构建了我的模式,我的工作结果可以找到HERE。
我失踪了什么?
UPDATE 代码:
$router->addRoute(
'www-search-results',
new Zend_Controller_Router_Route_Regex(
'fooroute(?:(?:,([a-z_]+))?(?:,(p\d+))?(?:,(\d+))?)?$',
array(
'module'=>'www',
'controller'=>'index',
'action'=>'searchresults',
'city' => 'alles',
'searchParams' => 'p0000',
'page' => 1
),
array(
'1'=>'city',
'2'=>'searchParams',
'3'=>'page'
)
, 'fooroute,%s,%s,%d'
)
);
谢谢!会尝试一下。顺便说一句,哪个软件能产生这么漂亮的图像;) – ex3v 2014-11-06 08:31:55
不幸的是,这是行不通的。虽然事实证明'Zend_Controller_Route_Regex'默认添加了'/ i',但它仍然不会得到'+'符号。 – ex3v 2014-11-06 08:36:56
@ ex3v你可以把你正在使用的实际代码放在你的问题中吗?该网站是https://www.debuggex.com – hjpotter92 2014-11-06 08:39:36