Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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 使用Zend将多段URL放入一个变量中_Php_Zend Framework_Routing - Fatal编程技术网

Php 使用Zend将多段URL放入一个变量中

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中的斜杠 例如连字符(-)

对于一个新的应用程序,我想使用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中的斜杠


例如连字符(-)或下划线(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