我需要preg_match我的路线,我试着这样做:
if (preg_match('surveillance', $request->headers->get('referer'))){
var_dump("match");
} else {
var_dump("dont match");
}随着我的标题得到引用,我得到:
http://.../surveillance/item/veille/h/55如果我有“监视”,我想要得到“匹配”的回报。
发布于 2017-03-06 09:06:39
向preg_match表达式添加分隔符。
if (preg_match('/surveillance/', $request->headers->get('referer'))){
var_dump("match");
} else {
var_dump("dont match");
}或
if (stristr($request->headers->get('referer'),'surveillance')){
var_dump("match");
} else {
var_dump("dont match");
}发布于 2017-03-06 09:10:49
这可能不是您想要的答案,但与其用regex解析引用,不如使用单独的控制器操作和路由,或者只使用相同的路由/控制器,但使用一个路由参数。
这就是他们的目的。
发布于 2017-06-07 08:05:30
搜索字符串不是变量,也不关心它在头字符串中的位置,因此regex不是最好的方法。
只需像这样使用strpos():
if (strpos($request->headers->get('referer'),'surveillance')!==false){
var_dump("match");
} else {
var_dump("dont match");
}但是在头字符串中的任何位置,上面的内容都将与surveillance匹配。如果要尝试检查完整字符串surveillance是否用作目录值,可以将其包装为斜杠(/):
if (strpos($request->headers->get('referer'),'/surveillance/')!==false){
var_dump("match");
} else {
var_dump("dont match");
}我不知道Symfony的事,所以Mawcel可能就在他/她的岗位上。
除了这些选项之外,如果您希望真正确定surveillance被用作服务器上的有效/现有目录,那么您必须查看检查目录是否存在的其他函数。如果这不在您的服务器上,那么您可能需要查看检查子字符串位置的更精细的regex模式。
https://stackoverflow.com/questions/42621245
复制相似问题