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