Php 使用Zend将多段URL放入一个变量中
对于一个新的应用程序,我想使用URI来确定应该加载什么内容。到目前为止没有什么特别的。。。但是如何让slug中有斜杠(es),并确保Zend框架将它们视为1个变量?ZF将请求的URL拆分为块,其中每个部分都是2个斜杠之间的字符串。现在我想让所有的部分在一个变量中工作 例如: /de/my/page de > language my/page > 1 variable /de/my/page de>语言 my/page>1变量Php 使用Zend将多段URL放入一个变量中,php,zend-framework,routing,Php,Zend Framework,Routing,对于一个新的应用程序,我想使用URI来确定应该加载什么内容。到目前为止没有什么特别的。。。但是如何让slug中有斜杠(es),并确保Zend框架将它们视为1个变量?ZF将请求的URL拆分为块,其中每个部分都是2个斜杠之间的字符串。现在我想让所有的部分在一个变量中工作 例如: /de/my/page de > language my/page > 1 variable /de/my/page de>语言 my/page>1变量 有什么想法吗?用您选择的其他值替换slug中的斜杠 例如连字符(-)
有什么想法吗?用您选择的其他值替换slug中的斜杠
例如连字符(-)或下划线(41;)。Hari K的建议是最好的选择,但如果您真的想保留斜杠,您可以使用Zend_Controller_Router_Route_Regex来捕获参数,您只需要找到一个好的正则表达式,一个简单的示例:
$routetotry = new Zend_Controller_Router_Route_Regex('([^/]+)/(.*)',
array(1 => 'de', 'controller' => 'someController', 'action' => 'someAction'),
array(1 => 'lang',2=>'my_variable_with_slash'),
'%s/%s'
);
$router->addRoute('routetotry', $routetotry);
自定义路由器。最灵活的解决方案,但不是最简单的:(您能提供一个您想要实现的示例吗?
explode(“/”,“$url,1);
可能是2