我需要preg_match我的路线,我尝试这样:
if (preg_match('surveillance', $request->headers->get('referer'))){
var_dump("match");
} else {
var_dump("dont match");
}
随着我的标题得到引用我得到:
http://.../surveillance/item/veille/h/55
如果我有“监视”,我希望得到“匹配”。
答案 0 :(得分:1)
为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");
}
答案 1 :(得分:0)
这可能不是您正在寻找的答案,但不是使用正则表达式解析引用者,您应该使用单独的控制器操作和路由,或者只使用相同的路由/控制器,但使用路由参数。
这就是他们的目的。
答案 2 :(得分:0)
您的搜索字符串不是可变的,并且您不关心它在标题字符串中的位置,因此正则表达式不适合您的情况。
只需使用# i assume there is a file by name `ia_servers` with variable IA_SRV_cs68_64="ds1 ds2 ds3 ds5 "
import imp
ia_servers =imp.load_source('ia_servers', 'path to `ia_servers` file')
print ia_servers.IA_SRV_cs68_64 # this should print `ds1 ds2 ds3 ds5`
,就像这样:
strpos()
但是上面的内容会在标题字符串中匹配if (strpos($request->headers->get('referer'),'surveillance')!==false){
var_dump("match");
} else {
var_dump("dont match");
}
ANYWHERE。如果要尝试检查是否将完整字符串surveillance
用作目录值,可以用斜杠(surveillance
)包装它:
/
我不了解Symfony,所以Mawcel可能会在他/她的帖子中正确。
除了这些选项之外,如果您想确定if (strpos($request->headers->get('referer'),'/surveillance/')!==false){
var_dump("match");
} else {
var_dump("dont match");
}
被用作服务器上的有效/现有目录,那么您必须查看检查目录是否存在的其他函数存在。如果您的服务器上没有这个,那么您可能需要查看更精确的正则表达式模式来检查子字符串位置。