Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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 为什么';这个正则表达式是否被codeigniter';s路由器_Php_Regex_Codeigniter_Url Routing - Fatal编程技术网

Php 为什么';这个正则表达式是否被codeigniter';s路由器

Php 为什么';这个正则表达式是否被codeigniter';s路由器,php,regex,codeigniter,url-routing,Php,Regex,Codeigniter,Url Routing,我有这条路线: $route["((parameter|type|something)-([0-9]+)\/)+"] = 'somecontroller'; 因此,当我使用以下内容测试url时: www.somewebsite.com/parameter-1/ codeigniter返回页面未找到错误。但我在这里测试了正则表达式: 它似乎工作得非常好 编辑:我还尝试过放置前导/尾随/: $route["/((parameter|type|something)-([0-9]+)\/)+/"]

我有这条路线:

$route["((parameter|type|something)-([0-9]+)\/)+"] = 'somecontroller';
因此,当我使用以下内容测试url时:

www.somewebsite.com/parameter-1/
codeigniter返回页面未找到错误。但我在这里测试了正则表达式:

它似乎工作得非常好

编辑:我还尝试过放置前导/尾随/:

$route["/((parameter|type|something)-([0-9]+)\/)+/"] = 'somecontroller';
编辑:好的,多亏了Omega(用户),这是因为斜杠字符(/)在codeigniter的路由解析引擎中具有特殊的优先级或效果。所以,如果它是正则表达式的一部分,您可以表示它可以出现多少次,不知道为什么,所以您可以通过这些运算符{}或跟随它?或*或+,或处理前面表达式出现次数的任何其他运算符。那么上面的路线,有没有?操作员工作:

$route["/((parameter|type|something)-([0-9]+)\/)+/?"] = 'somecontroller';

这显然是一个特定于codeigniter的问题。

尝试将
添加到模式>
((参数|类型|某物)-([0-9]+)\/?)+

CI是否希望您也提供此功能?嗯,不确定您的意思,您能进一步解释一下吗?
$route['/((参数|类型|某物)-([0-9]+)\/)/)/“='somecontroller'='
-注意前面/后面的
/
s,并在我的第一条评论中查看链接OK,所以我在表达式的开头和结尾添加了/in,所以现在是:/((参数|类型|某物)-([0-9]+)\/)+/但它仍然不起作用。如果有任何建议,我们将不胜感激…解释OP为什么会更好,我尝试了?,但还是不起作用。老实说,如果codeigniter有一个特定的正则表达式,应该在他们的用户指南中提到,我不知道他们怎么能忽略它…哦,哇,你说的对,是吗?这是一个技巧,所以它基本上是为了逃避斜杠?斜杠在路径的末尾是可选的