首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony preg_match a路由

Symfony preg_match a路由
EN

Stack Overflow用户
提问于 2017-03-06 08:54:08
回答 3查看 605关注 0票数 0

我需要preg_match我的路线,我试着这样做:

代码语言:javascript
复制
if (preg_match('surveillance', $request->headers->get('referer'))){
     var_dump("match");
} else {
     var_dump("dont match");
}

随着我的标题得到引用,我得到:

代码语言:javascript
复制
http://.../surveillance/item/veille/h/55

如果我有“监视”,我想要得到“匹配”的回报。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-06 09:06:39

向preg_match表达式添加分隔符。

代码语言:javascript
复制
if (preg_match('/surveillance/', $request->headers->get('referer'))){
     var_dump("match");
} else {
     var_dump("dont match");
}

代码语言:javascript
复制
if (stristr($request->headers->get('referer'),'surveillance')){
      var_dump("match");
} else {
     var_dump("dont match");
}
票数 1
EN

Stack Overflow用户

发布于 2017-03-06 09:10:49

这可能不是您想要的答案,但与其用regex解析引用,不如使用单独的控制器操作和路由,或者只使用相同的路由/控制器,但使用一个路由参数。

这就是他们的目的。

票数 0
EN

Stack Overflow用户

发布于 2017-06-07 08:05:30

搜索字符串不是变量,也不关心它在头字符串中的位置,因此regex不是最好的方法。

只需像这样使用strpos()

代码语言:javascript
复制
if (strpos($request->headers->get('referer'),'surveillance')!==false){
     var_dump("match");
} else {
     var_dump("dont match");
}

但是在头字符串中的任何位置,上面的内容都将与surveillance匹配。如果要尝试检查完整字符串surveillance是否用作目录值,可以将其包装为斜杠(/):

代码语言:javascript
复制
if (strpos($request->headers->get('referer'),'/surveillance/')!==false){
     var_dump("match");
} else {
     var_dump("dont match");
}

我不知道Symfony的事,所以Mawcel可能就在他/她的岗位上。

除了这些选项之外,如果您希望真正确定surveillance被用作服务器上的有效/现有目录,那么您必须查看检查目录是否存在的其他函数。如果这不在您的服务器上,那么您可能需要查看检查子字符串位置的更精细的regex模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42621245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档